<分区>
我正在为应用程序编写基础类,并希望正确构建它们以实现长期可维护性。为此,我正在研究要实现的设计模式、接口(interface)的使用、抽象类以及将持久性与事件分开。我满脑子都是模式、范例和原则。
我有一个类 Product
,我为其创建了一个接口(interface) IProduct
。我相信我需要制作 Product
和抽象类,因为它的任何实例都必须是属性 Category
的六个值之一。那么,我的第一个问题是:以下方法是否合适?
abstract class Product : IProduct
{
// Fields
// Properties
// Methods
}
interface IProduct
{
// Properties
}
public class Model : IProduct
{
public Model()
{
Category = "Model";
}
// Model-specific fields
// Model-specific properties
// Model-specific methods
}
我读过的文章,包括之前在这里回答的问题,都表明我应该在设计时将属性和方法(持久性和 liveness )分开。为此,上面的代码真的应该像这样吗?
abstract class Product : IProduct
{
// Fields
// Properties
// Methods
}
interface IProduct
{
// Properties
}
public partial class Model : IProduct
{
public Model()
{
Category = "Model";
}
// Model-specific fields
// Model-specific properties
}
public partial class Model : IProduct
{
// Model-specific methods
}
当然,这假设我的第一部分是正确的,但也许答案会启发我应该如何做事。
最后,如果属性和方法的分离是一件好事,并且 Product
有一些方法适用于它的所有具体版本,我是否应该像这样将它们移动到一个单独的抽象类中?
abstract class Product : IProduct
{
// Fields
// Properties
}
abstract class Product : IProduct
{
// Methods
}