23 디자인 모드 의 원형 모드 (Prototype)

디 렉 터 리 되 돌리 기
개술
Prototype 은 생 성 모드 의 하나 로 원형 인 스 턴 스 로 생 성 대상 의 종 류 를 지정 하고 이 원형 을 복사 하여 새로운 대상 을 만 듭 니 다.
2 적용 성
  • 시스템 이 제품 의 창설, 구성 과 표시 에 독립 해 야 할 때.
  • 실례 화 할 클래스 는 실행 시간 에 지 정 될 때, 예 를 들 어 동적 으로 불 러 옵 니 다.
  • 제품 류 차원 과 평행 하 는 공장 류 차원 을 만 들 지 않도록 한다.
  • 하나의 인 스 턴 스 가 몇 개의 서로 다른 상태 조합 중 하나 만 있 을 때.

  • 3 참가 자
  • Prototype: 자신 을 복제 하 는 작업 을 실현 합 니 다.
  • Concrete Prototype: 복제 자체 의 원형 을 실현 합 니 다.
  • Client: 원형 을 복제 하여 새로운 대상 을 만 듭 니 다.

  • 분류 도
    5 코드 구현
    //
    // YJPrototype.swift
    // DesignPattern
    //
    // CSDN:http://blog.csdn.net/y550918116j
    // GitHub:https://github.com/937447974/Blog
    //
    // Created by yangjun on 15/11/26.
    // Copyright © 2015    . All rights reserved.
    //
    
    import Cocoa
    
    ///            
    private class Prototype {
    
        var name:String = ""
    
        // MARK:   
        func clone() -> Prototype {
            let pro = Prototype()
            pro.name = name
            return pro
        }
    }
    
    /// ConcretePrototype            
    private class ConcretePrototype: Prototype {
    
        init(name:String) {
            super.init()
            super.name = name
        }
    
    }
    
    ///       
    class YJPrototype: YJTestProtocol {
    
        func test() {
            let pro = ConcretePrototype(name:"  ")
            // Client,                   。
            let pro2 = pro.clone()
            print(pro.name)
            print(pro2.name)
        }
    
    }

     
    기타
    소스 코드
    Framework
    문서 수정 기록
    시간.
    묘사 하 다.
    2015-11-27
    박문 완성
    판권 소유
    CSDN:http://blog.csdn.net/y550918116j
    GitHub:https://github.com/937447974/Blog

    좋은 웹페이지 즐겨찾기