как назвать класс, который генерирует другие классы?

У меня есть несколько классов, которые реализуют интерфейс:

  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
10 янв. '14 в 14:20
источник поделиться
1 ответ

вы описываете заводскую модель http://en.wikipedia.org/wiki/Factory_method_pattern

обычно мы используем соглашение SampleFactory

Но не переусердствуйте. Очень сложно сделать такие имена из образцов. например, для большинства людей очевидно, что квадрат наследуется от формы. так

 ShapeFactory.Create("Square");

будет иметь большой смысл. так что посмотрите на свою проблему, чтобы увидеть, что такое ISample на самом деле. Если я имею смысл с точки зрения бизнеса/проблемы, другие программисты, которые понимают проблему, могут понять это.

5
10 янв. '14 в 14:30
источник

Посмотрите другие вопросы по меткам или Задайте вопрос