프로토타입 패턴 - 위키백과, 우리 모두의 백과사전 프로토타입 패턴 위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 프로토타입 패턴 ( prototype pattern ) 은 소프트웨어 디자인 패턴 용어로, 생성할 객체들의 타입이 프로토타입인 인스턴스로부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제 ( clone ) 하게 된다. 프로토타입 패턴은, 추상 팩토리 패턴과는 반대로, 클라이언트 응용 프로그램 코드 내에서 객체 창조자 ( creator ) 를 서브클래스 ( subclass ) 하는 것을 피할 수 있게 해준다. 프로토타입 패턴은 새로운 객체는 일반적인 방법 ( 예를 들어, new를 사용해서라든지 ) 으로 객체를 생성 ( create ) 하는 고유의 비용이 주어진 응용 프로그램 상황에 있어서 불가피하게 매우 클 때
는 일반적인 방법 ( 예를 들어, new를 사용해서라든지 ) 으로 객체를 생성 ( create ) 하는 고유의 비용이 주어진 응용 프로그램 상황에 있어서 불가피하게 매우 클 때, 이 비용을 감내하지 않을 수 있게 해준다. 패턴을 구현하려면, 우선 clone 메소드를 선언하는 추상 베이스 클래스를 하나 만든다. 다형적 생성자 ( polymorphic constructor ) 기능이 필요한 클래스가 있다면, 그것을 앞에서 만든 클래스를 상속받게 한 후, clone 메소드 내의 코드를 구현한다. 구조 목차 1 원칙 2 예제 2. 1 C 2. 2 C # 2. 3 Java 2. 4 Python 2. 5 PHP 3 같이 보기 4 각주 원칙 [ 편집 ] 객체 생성과 관련된 패턴들은 서로 영역이 겹치는 면이 있다. 프로토타입 패턴
echo $ line - in. " < br / > " ; } > [ 5 ] 출력은 다음과 같다. BEGIN TESTING PROTOTYPE PATTERN Book 1 topic : SQL Book 1 title : SQL For Cats Book 2 topic : PHP Book 2 title : OReilly Learning PHP 5 Book 3 topic : SQL Book 3 title : OReilly Learning SQL END TESTING PROTOTYPE PATTERN 같이 보기 [ 편집 ] 프로토타입 기반 프로그래밍 추상 팩토리 ( Abstract factory ) 패턴 빌더 ( Builder ) 패턴 각주 [ 편집 ] ↑ 가 나 다 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (
2. 4 Python 2. 5 PHP 3 같이 보기 4 각주 원칙 [ 편집 ] 객체 생성과 관련된 패턴들은 서로 영역이 겹치는 면이 있다. 프로토타입 패턴과 추상 팩토리 패턴 중 어느 하나가 적용될 수 있는 경우가 있다. 추상 팩토리 패턴이 프로토타입들의 집합을 갖고있다가, 클론 ( clone ) 한 뒤 프로덕트 ( product ) 객체를 반환할 수도 있다. [ 1 ] : 126쪽 추상 팩토리 패턴, 빌더 패턴, 프로토타입 패턴은 각 구현에 있어서 싱글턴 패턴을 활용할 수 있다. [ 1 ] : 81쪽 : 134쪽 다시 말해 추상 팩토리 클래스는 종종 팩토리 메소드과 함께 구현하거나 [ 2 ], 프로토타입을 이용해서 구현되기도 한다. [ 3 ] 보통 설계는 처음에는 팩토리 메소드로 출발한다. 다음에 설계자의 재량
actory ) 패턴 빌더 ( Builder ) 패턴 각주 [ 편집 ] ↑ 가 나 다 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ( 1994년 ). 《 Design Patterns 》. Addison - Wesley. ISBN 0 - 201 - 63361 - 2. 다음 날짜 값 확인 필요 : | date = ( 도움말 ) CS1 관리 - 여러 이름 ( 링크 ) ↑ 상속을 통해 객체를 생성 ↑ 딜리게이션을 통해 객체를 생성 ↑ object cloning ↑ Prototype Design Pattern in PHP vdeh소프트웨어 디자인 패턴Gang of four 패턴생성 패턴 추상 팩토리 빌더 팩토리 메서드 프로토타입 싱글턴 구조 패턴 [UNK] 브리지 컴포지트 데코레이터 퍼사드 플라이웨이트 프록시 동작 패턴 책임 연쇄 커맨드 인터프리
패턴생성 패턴 추상 팩토리 빌더 팩토리 메서드 프로토타입 싱글턴 구조 패턴 [UNK] 브리지 컴포지트 데코레이터 퍼사드 플라이웨이트 프록시 동작 패턴 책임 연쇄 커맨드 인터프리터 반복자 중재자 메멘토 옵서버 상태 전략 템플릿 메소드 비지터 동시성 패턴 액티브 오브젝트 Balking Binding properties en : Double - checked locking Event - based asynchronous en : Guarded suspension 조인 락 모니터 ( 동기화 ) Proactor 반응자 패턴 Read write lock 스케줄링 ( 컴퓨팅 ) 스레드 풀 en : Thread - local storage 아키텍처 패턴 프론트 컨트롤러 Interceptor 모델 - 뷰 - 컨트롤러 다층 구조 Specification 발행 - 구독 모델 en : Naked objects Service locator Active rec
팩토리 메소드과 함께 구현하거나 [ 2 ], 프로토타입을 이용해서 구현되기도 한다. [ 3 ] 보통 설계는 처음에는 팩토리 메소드로 출발한다. 다음에 설계자의 재량에 따라 추상 팩토리 패턴, 빌더 패턴, 프로토타입 패턴으로 바뀔 수 있다. [ 1 ] : 136쪽 프로토타입은 서브클래싱을 필요로 하지 않는다. 하지만 " 초기화 " 동작을 필요로 한다. 팩토리 메서드 패턴은 서브클래싱을 필요로 하나, " 초기화 " 동작은 필요로 하지 않는다. 설계자는 컴포지트 패턴이나 데코레이터 패턴을 매우 많이 사용한 무거운 설계를 프로토타입을 사용하여 더 좋게 만들 수 있다. 원칙은 " " 에 또 다른 " 객체 " 를 생성한다는 것이다. 다시 말해 이 시점에 가서 클로닝 ( cloning ) 을 하는 객체
amma Ralph Johnson en : John Vlissides 그래디 부치 en : Kent Beck 워드 커닝햄 en : Martin Fowler Robert Martin en : Jim Coplien Douglas Schmidt en : Linda Rising 커뮤니티 en : The Hillside Group The Portland Pattern Repository 원본 주소 " " 분류 : 소프트웨어 디자인 패턴숨은 분류 : 인용 오류 - 날짜CS1 관리 - 여러 이름영어 표기를 포함한 문서 둘러보기 메뉴 개인 도구 로그인하지 않음토론기여계정 만들기로그인 이름공간 문서토론 변수 보기 읽기편집역사 보기 더 보기 검색 둘러보기 대문사용자 모임요즘 화제최근 [UNK] 문서 보기임의 문서로도움말기부 도구 여기를 가리키는 문서가리키는 글의 최근 [UNK] 올리기특수 문서 목록고유 링크
totype. return copy ; } catch ( CloneNotSupportedException e ) { e. printStackTrace ; return null ; } } } / * * Concrete Prototypes to clone * * / public class CoconutCookie extends Cookie { } / * * Client Class * * / public class CookieMachine { private Cookie cookie ; / / could have been a private Cloneable cookie ; public CookieMachine ( Cookie cookie ) { this. cookie = cookie ; } public Cookie makeCookie { return ( Cookie ) cookie. clone ; } public Object clone { }
/ / < / summary > public abstract class Record { public abstract Record Clone ; } / / / < summary > / / / PersonRecord is the Concrete Prototype / / / < / summary > public class PersonRecord : Record { string name ; int age ; public override Record Clone { return ( Record ) this. MemberwiseClone ; / / default shallow copy } } / / / < summary > / / / CarRecord is another Concrete Prototype / / / < / summary > public class CarRecord : Record { string carname ; Guid id ; public override Record Clone {
프로토타입 패턴(prototype pattern)은 소프트웨어 디자인 패턴 용어로, 생성할 객체들의 타입이 프로토타입인 인스턴스로부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제(clone)하게 된다. 프로토타입 패턴은, 추상 팩토리 패턴과는 반대로, 클라이언트 응용 프로그램 코드 내에서 객체 창조자(creator)를 서브클래스(subclass)하는 것을 피할 수 있게 해준다. 프로토타입 패턴은 새로운 객체는 일반적인 방법(예를 들어, new를 사용해서라든지)으로 객체를 생성(create)하는 고유의 비용이 주어진 응용 프로그램 상황에 있어서 불가피하게 매우 클 때, 이 비용을 감내하지 않을 수 있게 해준다.패턴을 구현하려면, 우선 clone 메소드를 선언하는 추상 베이스 클래스를 하나 만든다. 다형적 생성자(polymorphic constructor) 기능이 필요한 클래스가 있다면, 그것을 앞에서 만든 클래스를 상속받게 한 후, clone 메소드 내의 코드를 구현한다.