Порождающие шаблоны проектирования


Пример классической реализации



Pdf көрінісі
бет5/15
Дата16.10.2022
өлшемі0,66 Mb.
#43481
1   2   3   4   5   6   7   8   9   ...   15
Пример классической реализации 
Диаграмма классов будет выглядеть следующим образом: 


Рисунок 5 
Диаграмма классов для классического примера шаблонного метода 
Исходный код: 
public abstract class Warrior 

public abstract string Info(); 

public class Infantryman : Warrior 

public override string Info() 

return "Infantryman"; 


public class Archer : Warrior 

public override string Info() 

return "Archer"; 


public class Horseman : Warrior 

public override string Info() 
{
return "Horseman"; 


public abstract class Factory 

public abstract Warrior CreateWarrior(); 



public class InfantryFactory : Factory 

public override Warrior CreateWarrior() 

return new Infantryman(); 


public class ArchersFactory : Factory 

public override Warrior CreateWarrior() 

return new Archer(); 


public class CavalryFactory : Factory 

public override Warrior CreateWarrior() 

return new Horseman(); 


Классический вариант шаблона «Фабричный метод» использует идею полиморфной фабрики. 
Специально выделенный для создания объектов полиморфный базовый класс Factory объявляет 
интерфейс фабричного метода CreateWarrior(), а производные классы его реализуют. 
Представленный вариант паттерна Factory Method является наиболее распространенным, но не 
единственным. Возможны следующие вариации: 
• Класс Factory имеет реализацию фабричного метода CreateWarrior() по умолчанию. 
• Фабричный метод CreateWarrior() класса Factory параметризирован типом создаваемого 
объекта (как и у представленного ранее, простого варианта Factory Method) и имеет 
реализацию по умолчанию. В этом случае, производные от Factory классы необходимы 
лишь для того, чтобы определить нестандартное поведение CreateWarrior(). 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   15




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет