【发布时间】:2016-12-14 09:15:40
【问题描述】:
我正在处理一个个人项目,但遇到了问题。
我有几个对象,它们具有相同的属性、方法等。唯一不同的是它们的名称、属性值和方法的实现。他们还需要通用的默认方法实现。所以马上,一个接口是不可能的。
所以我创建了一个带有属性和“默认”方法的基类。但是这个基类需要是抽象的。这些方法是虚拟的,因此它们可以被覆盖。
我需要它们是静态的原因是对象将是其他对象的属性。
因此,例如,上面引用的对象是(为简单起见)objX、objY、objZ。它们是从它们的基础 objW 派生的。
objContainer 是一个完全不相关的对象,但它有一个 objW 类型的属性,它是 objX、objY、objZ 的一个实例。
objX、objY 和 objZ永远不会改变。它们的属性都将是只读的。因此实例 objContainer 的多个对象将具有 objX、objY 或 objZ。
public class objContainer1
{
objW processor = new objY;
}
public class objContainer2
{
objW processor = new objY;
}
我该怎么做呢?我想让它们保持静态,所以我没有相同对象的多个实例,当它们都完全相同时,真的。
我使用单例吗?工厂模式?
我不知道该往哪个方向发展(如果有的话)。可能是我想多了,有一个非常简单的解决方案/
【问题讨论】:
标签: c# .net static virtual abstract