您好,我有一个小的设计问题:
主要问题:
我有接口"Checeker"的,以及一些数据类型,可以是复杂的(自定义类),或简单(简单的整数)。
在年底,我收到的数据,我不知道我得到的数据,但我知道我可以把它叫做"IDATA"。
然后,我加载一些"棋子"(及其不时变化),和每个人都必须检查接收到的数据。
发生问题,跳棋知道他们收到的数据类型,所以我将它转换回他们的数据。
这是我想到了什么:
我有2个接口:
1。 IDATA:
2。答:
public interface IData
{
// some properties.
object Data { get; } // bah, don't like this.
}
{C}
现在,实现A接口类,总是像这样:
public class RealChecker : A
{
void Check(IData d)
{
ConcreteClass = d as ConcreteClass
if (d.someFunc() == 1)
throw exception...
}
}
public class Bla : A
{
void Check(IData d)
{
string realData = d as string
...
}
}
在最后,我有一个发动机,得到的"A",从工厂的几个实例(这是设计好的,我加载在地图开始的类型,然后我得到我想要从它的一个)。{BR }"检查数据"对一个IDATA接口。
它看起来差我,是否有更好的设计?
(不要惊慌,这是一个普遍的问题,这意味着,
在现实生活中,我使用的是完全diffrent。我只是在寻找最适合它的设计)。
谢谢