2014-01-10 33 views
1

我有几类,所有实现接口:如何命名生成其他类的类?

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"); 

其中有两个创建为名称的一部分。 CreateISample也可以做其他事情(例如,保存一些与所有实例相关的常量值,或者保存已创建实例的列表等等)。然后CreateISample不是一个好名字。

这是否有任何标准?我记得我读过一本关于设计模式的书,他们为这个工厂模式提出了一个合适的名字。

+8

怎么样命名它SampleFactory和移动问题到http://codereview.stackexchange.com或http://programmers.stackexchange.com? –

+1

我会叫它Bob(tgif :)) –

+0

'GenerateISample'怎么样? – Sean

回答

5

你所描述的工厂模式http://en.wikipedia.org/wiki/Factory_method_pattern

通常我们使用的约定是SampleFactory

但不要overthink它。来自样本的名字真的很难。例如,对于大多数人来说,正方形从形状上继承是显而易见的。所以

ShapeFactory.Create("Square"); 

会有很大的意义。所以看看你的问题,看看ISample确实是什么样的东西。如果我从商业/问题方面理解,其他程序员谁了解这个问题可以弄明白。

+0

因此,基本上使用工厂是一个好主意。它应该是静态类还是普通类? – mans

相关问题