이 기사에서는 Java가 일상 생활을 보여줄 수있는 프로토 타입 모드 사용에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
1. 패턴 정의
프로토 타입 인스턴스로 작성할 객체 유형을 지정하고 이러한 프로토 타입을 복사하여 새 개체를 만듭니다.
2. 모델의 예
1 패턴 분석
우리는 일일 작업 상황을 사용 하여이 모델을 설명합니다.
2 스토리 라인 분석 다이어그램
3 프로토 타입 모드 정적 모델링
4 코드 예제
4.1 프로토 타입 생성
package com.prototype.pojo;/** * 일상 생활 클래스 * * @author */public class daylife는 복제 가능한 {// 구성 방법 public daylife () {system.out.println ( "-구성 방법이 실행됩니다!-"); } // 개인 문자열 GetUp; // 버스 개인 문자열 바이 버스를 가져갑니다. // 이륙하여 아침 식사를 구입하십시오 개인 문자열 getfood; // 정오에 낮잠을 자십시오. // 오후에 일을 시작합니다. 개인 문자열 오후 작업; // Het Off Off에서 집으로 돌아갑니다 Private String Gohome; // 야간 레저 개인 문자열 밤; 공개 문자열 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 (String noon) {this.noon = 정오; } public String getafternoonwork () {반환 오후 작업; } public void setafternoonwork (문자열 오후 작업) {this.afternoonwork = 오후 작업; } 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 clon () {try {// 슈퍼 클래스의 복제 메소드를 호출하십시오 (슈퍼 클래스? 클래스가 통합되어 있습니까? 슈퍼 클래스는 어디에서 오는가? } catch (예외 e) {} return null; }}4.2 프로토 타입 객체를 생성하는 추상 공장을 만듭니다
package com.prototype.factory; import com.prototype.pojo.dayLife;/** * 팩토리 클래스 * * @Author * */public interface ilifeFactory {/** * 생산 데이 라이프 개체 * * @return */public daylife getNewinstance ();}4.3 프로토 타입 객체를 생성하기위한 특정 공장을 만듭니다
package com.prototype.factory.impl; import com.prototype.fortory.ilifefactory; import com.prototyp.pojo.daylife;/** * 팩토리 구현 클래스 * * @author * */public class lifefactoryimpl emplements ilife factory {// day -life 객체 implempection daylipe private daylipe = null; /** * getNewInstance 메소드 구현 : * * 먼저 Daylife가 NULL인지 확인하십시오. * NULL이 아닌 경우 DayLift의 클론 방법을 사용하여 새 객체를 생성하고 DayLife Object에 복사 한 다음 */ @Override Public Daylife getNewInstance () {// DayLife가 NULL인지 확인하십시오. 참고 :이 새로운 것을 한 번만 사용하십시오! System.out.println ( "New 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이 아닌 경우 // 출력은 Clone Method.out.println ( "Clone Daylife!")을 사용하여 생성 된 객체입니다. // 복제 객체를 Daylife 및 Return DayLife = DayLife.Clone ()에 할당합니다. } return daylife; }}4.4 일일 작업 시나리오 디스플레이
패키지 com; import com.prototype.factory.ilifefactory; import com.prototype.mpl.impl.lifefactoryimpl; import com.prototype.pojo.daylife;/** * 메인 응용 프로그램 * * @author * */public class client {public static void main (string [] args) {// factory vifeffactory = new lifeffactord (new lifeffactord); // daylife 기본값 기본 컨텐츠 인쇄 lifefactory.getNewInstance (). print (); // DayLife를 다시 얻고, GetUp 컨텐츠 및 출력 컨텐츠를 수정하십시오. System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- daylife2. "나는 아침에 침대에 머물렀다! 나는 7 : 30까지 일어났다!";실행 결과
새로운 날 라이프!
- 건설 방법이 실행되었습니다! -
7시에 일어나십시오
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 Operation Dom Node Tips 요약", "Java 파일 및 디렉토리 작동 팁 요약"및 "Java Cache Operation Tips의 요약"을 볼 수 있습니다.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.