如何命名一个生成其他类的类?

时间:2014-01-10 11:20:51

标签: c# design-patterns

我有几个实现接口的类:

  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不是一个好名字。

这有什么标准吗?我记得我读过一本关于设计模式的书,他们为这种工厂模式提出了一个合适的名称。

1 个答案:

答案 0 :(得分:5)

您正在描述工厂模式http://en.wikipedia.org/wiki/Factory_method_pattern

我们使用的惯例通常是SampleFactory

但不要过度思考它。从样本中制作这样的名字真的很难。例如,对于大多数人来说,一个正方形从形状中继承是显而易见的。所以

 ShapeFactory.Create("Square");

会很有意义。所以看看你的问题,看看ISample到底是什么样的东西。如果我从业务/问题方面有意义,那么了解问题的其他程序员可以解决这个问题。