Шаблон "Прототип" (Prototype)

max аватар
130

Прототип означает создание клона. Это подразумевает клонирование объекта для предотвращения его создания. Если цена создания нового объекта высока или требует выделения множества ресурсов, тогда следует клонировать объект. Мы используем интерфейс Cloneable и вызываем его метод clone() для клонирования объекта.

Попробуем понять этот шаблон на жизненном примере. 

Возьмем растительную клетку. Данный пример немного отличается от реального клонирования, что подразумевает клонирование как создание копии оригинала. Мы делим клетку на две и делаем две копии, в то время как оригинал уже не существует.  Рассмотрим митоз - деление растительных клеток.

Возьмем класс PlantCell с методом split(). Растительная клетка реализует интерфейс Cloneable.

PlantCell.java

Теперь посмотрим, как работает метод split(). Создадим другой класс CellDivision и вызовем этот метод.

CellDivision.java:


Конец
Михаил Васильевич Ломоносов спешит напомнить, что ленивый человек в беспечном покое сходен с неподвижною болотною водою, которая кроме смраду и презренных гадин ничего не производит.

Статья мне не понравилась - ничего не объясняет и ничему не учит.

Еще: если PlantCell реализует интерфейс Cloneable, то где тогда реализация метода Сlone() ???

 

Отправить комментарий

CAPTCHA
Чтобы оставить комментарий, введите пожалуйста код, изображенный на картинке
Image CAPTCHA
Введите символы, изображенные на картинке