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


Рисунок 10 Диаграмма классов для шаблона «Прототип»



бет12/15
Дата01.10.2022
өлшемі254,47 Kb.
#41019
1   ...   7   8   9   10   11   12   13   14   15
Рисунок 10 Диаграмма классов для шаблона «Прототип»
Исходный код:
public abstract class Prototype
{
public abstract Prototype Clone();
}

public class Prototype1 : Prototype


{
private int _value;
public override Prototype Clone()
{
Prototype1 prototype = new Prototype1();
prototype._value = this._value;
return prototype;
}
}

public class Prototype2 : Prototype


{
private string _name;
public override Prototype Clone()
{
Prototype2 prototype = new Prototype2();
prototype._name = this._name;
return prototype;
}
}

public class Client


{
Prototype _prototype;

public void Operation(Prototype parPrototype)


{
_prototype = parPrototype.Clone();
}
}
Для порождения объекта некоторого типа в системе должен существовать его прототип. Прототип представляет собой объект того же типа, единственным назначением которого является создание подобных ему объектов. Обычно для удобства все существующие в системе прототипы организуются в специальные коллекции-хранилища или реестры прототипов. Реестр прототипов позволяет добавлять или удалять прототип, а также создавать объект по идентификатору типа. Именно операции динамического добавления и удаления прототипов в хранилище обеспечивают дополнительную гибкость системе, позволяя управлять процессом создания новых объектов.

Пример реализации шаблона «Прототип»


Приведем реализацию шаблона «Прототип» на примере построения армий.
В примере будут показаны два варианта реализации шаблона:


Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   15




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

    Басты бет