Описание:
Паттерн Фабричный метод необходим для ликвидирования зависимости кода от создания конкретных объектов. Создание экземпляра объекта выделяется в абстрактный метод фабрики, который реализуется потомком этой фабрики. В основу паттерна заложен принцип наследования.
Пример:
1 2 3 4 5 6 |
public class Main { public static void main(String[] args){ ChineseFactory chineseFactory = new ChineseFactory(); chineseFactory.displayUnit(); } } |
1 2 3 4 |
Name: Chinese -_- /|\=|--- / \ |
Коды классов:
1 2 3 4 5 |
public interface Unit { String getName(); String getFace(); String getWeapon(); } |
1 2 3 4 5 6 7 8 9 10 |
public abstract class UnitFactory { public void displayUnit(){ Unit unit = getUnit(); System.out.println("Name: "+unit.getName()); System.out.println(unit.getFace()); System.out.println("/|\\"+unit.getWeapon()); System.out.println("/ \\"); } abstract Unit getUnit(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public class ChineseFactory extends UnitFactory { @Override Unit getUnit() { return new Unit() { @Override public String getName() { return "Chinese"; } @Override public String getFace() { return "-_-"; } @Override public String getWeapon() { return "=|---"; } }; } } |
UML-диаграмма:
Паттерн Фабричный метод