iOS設計模式 - 原型

來源:互聯網
上載者:User

標籤:

iOS設計模式 - 原型

 

原理圖

 

說明

1. 原型模式為複製這個原型並建立新的對象

2. 不同類的執行個體間差異僅是狀態的若干組合,因此,複製原型要比手工執行個體化更加方便

3. 類不容易建立,每個組件可把其他組件作為子節點的組合對象,複製已有的組合對象要比對副本修改更加容易

 

源碼

https://github.com/YouXianMing/PrototypePattern

////  BaseCopyObject.h//  PrototypePattern////  Created by YouXianMing on 15/7/29.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import <Foundation/Foundation.h>@interface BaseCopyObject : NSObject <NSCopying>/** *  ==> 子類不要重寫此方法 <== * *  複製操作 * *  @param zone * *  @return 新複製的對象 */- (id)copyWithZone:(NSZone *)zone;/** *  ==> 由子類重寫 <== * *  參數賦值操作 * *  @param baseCopyObject 複製操作的對象 */- (void)parametersCopyOperationWithBaseCopyObject:(BaseCopyObject *)baseCopyObject;@end
////  BaseCopyObject.m//  PrototypePattern////  Created by YouXianMing on 15/7/29.//  Copyright (c) 2015年 YouXianMing. All rights reserved.//#import "BaseCopyObject.h"@implementation BaseCopyObject- (id)copyWithZone:(NSZone *)zone {        BaseCopyObject *copy = [[self class] allocWithZone:zone];        [self parametersCopyOperationWithBaseCopyObject:copy];        return copy;}- (void)parametersCopyOperationWithBaseCopyObject:(BaseCopyObject *)baseCopyObject {    // 由子類重寫}@end

 

分析

抽象基類遵循了複製協議並實現了基本複製功能

執行個體化的類通過繼承抽象基類來繼承複製功能

* 進行字典和數組的深層次拷貝

* 數組與字典已完成了深層次拷貝

數組中的對象(或者字典中的對象)在實現拷貝時,也是需要實現NSCopying協議的,也可以繼承實現了NSCopying協議的基類

 

iOS設計模式 - 原型

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.