2013-07-15 5 views
0

Factory Class - это как DriverManager.getConnection("...conn..."). Они являются методами класса одного классаFactoryClass vs Normal Java Class

Теперь, как они отличаются от нормальных классов, как в java.lang.util

По нормальным классам, что я имею в виду, что, чей экземпляр создается как следующим образом.

Date d=new Date(); 

Итак, какие классы фабрик по сравнению с указанными выше (класс даты)?

+0

Очень сложно узнать, что здесь задают. В чем вопрос (который очень сложно определить без какого-либо вопросительного знака)? –

+0

Что вы подразумеваете под «Нормальным»? Заводские классы являются нормальными. На самом деле в классе 'java.lang.util' есть классы фабрик (например, класс' Collections'. Factory - это шаблон проектирования, FactoryClasses реализует этот шаблон дизайна. – Aurand

ответ

1

Они являются «нормальными» классами, но они следуют моделям фабричного метода

Factory example implementation

шаблон Фабрики используются для:

  • Создания объектов, не подвергая логику создания экземпляра для клиента.
  • Обратитесь к вновь созданному объекту через общий интерфейс

От: http://www.oodesign.com/factory-pattern.html

Вот пример того, как сделать это в Java

package designPatterns.creational.factory; 

public class CarFactory { 
    public static Car buildCar(CarType model) { 
     Car car = null; 
     switch (model) { 
      case SMALL: 
        car = new SmallCar(); 
        break; 

      case SEDAN: 
        car = new SedanCar(); 
        break; 

      case LUXURY: 
        car = new LuxuryCar(); 
        break; 

      default: 
        // throw some exception 
        break; 
      } 
     return car; 
    } 
} 

Полный пример: http://howtodoinjava.com/2012/10/23/implementing-factory-design-pattern-in-java/

1

Метод, о котором вы говорите, является ca lled a Дизайн-шаблон. Заводский метод - это шаблон создания, который предотвращает жесткое кодирование конструкторов и, вероятно, является одним из наиболее распространенных объектно-ориентированных шаблонов проектирования. Главное, чтобы понять здесь, это то, что шаблон Factory создает интерфейс для создания объектов. Он продвигает принцип DRY (не повторяйте себя) за счет уменьшения количества повторяющегося кода.

Если ваш код должен быть портативным, вам нужно избегать вызовов конструктора hardcoding в приложении. Иногда лучше всего, чтобы подклассы решали, какой класс следует создавать.

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