我有几个实现接口的类:
interface ISample
{
}
class A:ISample
{
}
class B:ISample
{
}
class C:ISample
{
}
和另一个根据某些情况创建它们的类,例如:
class CreateISample
{
ISample Create(string situation )
{
switch(situation )
{
case "create A":
return new A();
case "Create B":
return new B();
case "Create C":
return new C();
}
}
}
这门课的最佳名称是什么?
创建ISample并不好,因为我有:
CreateISample.Create("Create A");
其中有两个Create作为名称的一部分。此外,CreateISample可以执行其他一些操作(例如,保存一些与所有实例相关的常量值,或者保存已创建实例的列表等)。然后CreateISample不是一个好名字。
这有什么标准吗?我记得我读过一本关于设计模式的书,他们为这种工厂模式提出了一个合适的名称。
答案 0 :(得分:5)
您正在描述工厂模式http://en.wikipedia.org/wiki/Factory_method_pattern
我们使用的惯例通常是SampleFactory
但不要过度思考它。从样本中制作这样的名字真的很难。例如,对于大多数人来说,一个正方形从形状中继承是显而易见的。所以
ShapeFactory.Create("Square");
会很有意义。所以看看你的问题,看看ISample到底是什么样的东西。如果我从业务/问题方面有意义,那么了解问题的其他程序员可以解决这个问题。