В этой статье описывается использование режима прототипа для Java для демонстрации повседневной жизни. Поделитесь этим для вашей ссылки, следующим образом:
1. Определение шаблона
Укажите тип объектов, которые будут созданы с помощью экземпляров -прототипов, и создайте новые объекты, копируя эти прототипы.
2. Примеры модели
1 Анализ шаблона
Мы используем ежедневную рабочую ситуацию, чтобы проиллюстрировать эту модель.
2 Сюжетная схема анализа
3 Статическое моделирование режима прототипа
4 примеры кода
4.1 Создание прототипа
пакет com.prototype.pojo;/** * class * * * @author * */public class daylife реализует клонируемый {// СОЗДАТЬ МЕТОД Public Daylife () {System.out.println ("-метод строительства выполняется!-"); } // Получите частную строку GetUp; // садиться на автобусную строку Bybus; // Выйти и купить завтрак частной струны GetFood; // вздремнуть в полдень; // начать работу во второй половине дня частной струнной дневной работы; // пойти домой с работы с работы частной строки GoHome; // Night Leisure Private String Night; public String getGetup () {return getUp; } public void setgetup (string getUp) {this.getUp = getUp; } public String getBybus () {return bybus; } public void setbybus (string bybus) {this.bybus = bybus; } public String getGetFood () {return getFood; } public void setgetFood (string getFood) {this.getFood = getFood; } public String getNoon () {return полдень; } public void setNoon (строка полдень) {this.noon = полдень; } public String getafEntoonWork () {return jectWork; } public void setafternoonwork (String jectWork) {this.aftonoonwork = jeftwork; } public String getGohome () {return gohome; } public void setGohome (String gohome) {this.gohome = gohome; } public String getnight () {return Night; } public void setnight (String Night) {this.night = Night; } / *** Распечатать информацию о повседневной жизни* / public void print () {System.out.println (this.getGetup ()); System.out.println (this.getbybus ()); System.out.println (this.getgetFood ()); System.out.println (this.getNoon ()); System.out.println (this.getafternoonwork ()); System.out.println (this.getGohome ()); System.out.println (this.getnight ()); } / *** Метод клона* / @Override Public DayLife Clone () {try {// вызовать метод клона SuperClass (SuperClass? Класс не интегрирован? Откуда суперкласс? } catch (Exception e) {} return null; }}4.2 Создайте абстрактную фабрику, которая генерирует объекты прототипа
Пакет com.prototype.factory; import com.prototype.pojo.daylife;/** * Заводской класс * * @author * */public interface ilifefactory {/** *4.3 Создайте конкретную фабрику для генерации объектов прототипа
пакет com.prototype.factory.impl; import com.prototype.factory.ilifefactory; import com.prototype.pojo.daylife;/** * Класс заводской реализации * * @author * */public class LifeFactoryImplempless IlifeFactory {// Encement объекта DayLife используется для инициализации частного Static Daylife DayLife = noollife wull; /** * GETNEWINSTANCE Внедрение метода: * * Сначала определите, является ли DayLife NULL: * Если он нулевой, используйте новый для создания объекта DayLife, установите начальный содержимое, затем назначьте его экземпляру объекта DayLife, а затем верните; * Если он не является нулевым, используйте метод клонов DayLift, чтобы сгенерировать новый объект и скопировать его в объект Daylife, а затем вернуть */ @Override public Daylife getNewinStance () {// определить, является ли Daylife Null, если (DayLife == NULL) {// Если null // вывод, генерируемый объектом, используется новым. Примечание: используйте это новое только один раз! System.out.println ("Новая Daylife!"); // Установить содержание DayLife DayLife = New DayLife (); daylife.setgetup («Вставай в 7:00»); daylife.setbybus ("садиться на автобус в 7:30"); daylife.setgetfood («Getgetget выходите на автобусную остановку возле компании в 8:30, и при проезжании на автомобиль для завтрака рядом с дорогой вы купите завтрак и отвезете его вместе»); DayLife.Setnoon («Обед решается в небольшом ресторане рядом с компанией, а затем вздремнуть в офисном сиденье»); DayLife.Setafternoonwork («13:30 началась дневная работа»); daylife.setgohome ("17:30 ушел с работы вовремя"); DayLife.setnight («Вечерние развлечения»); } else {// если не null // Вывод - это объект, сгенерированный с использованием системы метода клонов. // назначить объект клона Daylife и return DayLife = dayLife.clone (); } вернуть DayLife; }}4.4 Ежедневный дисплей сценария работы
package com;import com.prototype.factory.ILifeFactory;import com.prototype.factory.impl.LifeFactoryImpl;import com.prototype.pojo.DayLife;/** * Main application* * @author * */public class Client { public static void main(String[] args) { // Create factory ILifeFactory lifeFactory = new LifeFactoryImpl(); // Распечатайте DayLife Default Content LifeFactory.getNewInstance (). Print (); // Получите Daylife снова, измените контент GetUp и выводный контент System.out.println ("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DayLife2.setgetup («Я остался в постели утром!Результаты бега
Новая дневная жизнь!
- Метод строительства был выполнен! -
Встать в 7:00
Сесть на автобус в 7:30
Выйдите на автобусную остановку возле компании в 8:30. Проходя мимо автомобиля на завтрак рядом с дорогой, вы будете покупать завтрак и отвезете его в компанию на обед. Затем вздремните в офисе.
Дневные работы начались в 13:30
Выйти с работы вовремя в 17:30 и повеселиться ночью
----------------------------
Клон Дейлав!
Оставайся в постели утром! 7 :: 15, прежде чем вставать!
Сесть на автобус в 7:30
Выйдите на автобусную остановку возле компании в 8:30. Проходя мимо автомобиля на завтрак рядом с дорогой, вы будете покупать завтрак и отвезете его в компанию на обед. Затем вздремните в офисе.
Дневные работы начались в 13:30
Выйти с работы вовремя в 17:30 и повеселиться ночью
3. Оригинальный дизайн этой модели
1 Метод конструктора объекта не выполняется при клонировании объекта
2 мелкая копия и глубокая копия
4. Используйте случаи
1 Процесс генерации аналога является относительно сложным, и инициализация требует многих ресурсов.
2 Когда вы хотите разделить прототип фреймворка и сгенерированный объект
3 Когда к одному и тому же объекту доступ к другим абонентам одновременно
Для получения дополнительной информации об алгоритмах Java, читатели, которые заинтересованы в этом сайте, могут просмотреть темы: «Учебное пособие по структуре данных Java и алгоритм», «Сводка операции Java Dom Node», «Сводка Java File и каталог
Я надеюсь, что эта статья будет полезна для всех Java Programming.