Почему создание объекта имеет отдельный интерфейс в шаблоне проектирования фабричного метода?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему создание объекта имеет отдельный интерфейс в шаблоне проектирования фабричного метода?

Сообщение Anonymous »

Я изучаю шаблоны проектирования, и в реализации в Java я наткнулся на пример. Я сомневаюсь, почему мы должны создать отдельный интерфейс для создания объектов подклассов. Почему мы не можем создать просто создать экземпляр, используя новое ключевое слово для детского класса?
public interface Shape {
void draw();
}

public class Square implements Shape {
public void draw() {
System.out.println("Drawing a Square");
}
}

public class Circle implements Shape {
public void draw() {
System.out.println("Drawing a Circle");
}
}

public interface ShapeFactory {
Shape createShape();
}

public class SquareFactory implements ShapeFactory {
public Shape createShape() {
return new Square();
}
}

public class CircleFactory implements ShapeFactory {
public Shape createShape() {
return new Circle();
}
}

public class Main {

public static void main(String[] args) {
ShapeFactory squareFactory = new SquareFactory();
Shape square = squareFactory.createShape();
square.draw();

ShapeFactory circleFactory = new CircleFactory();
Shape circle = circleFactory.createShape();
circle.draw();
}
}

Почему я не могу просто сделать:
public class Main {

public static void main(String[] args) {

Shape square = new Square();

Shape circle = new Circle();
}
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... gn-pattern
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»