使用原型例項指定建立物件的種類,並通過複製這個原型建立新的物件遵守協議它通過複製乙個已經存在的例項來返回新的例項,而不是新建例項
原型模式實際意義上來說是拷貝、而且一般情況下都是深拷貝。
簡單理解就是:建立第乙個模板物件,然後通過複製模板來建立新的物件
實現- (id)copywithzone:(nszone *)zone
方法
將所有的屬性複製到新物件中
@inte***ce person : nsobject @property (nonatomic, copy) nsstring *name;
@property (nonatomic, assign) nsuinteger age;
@end
- (nonnull id)copywithzone:(nullable nszone *)zone
//建立
person *model = [[person alloc] init];
model.name = @"jake";
model.age = 11;
person *clonemodel = [model copy];
iOS設計模式之原型模式
說明 深複製和淺複製 指標只是儲存在記憶體中資源位址的佔位符。在複製操作中,如果只是將指標複製給新物件 副本 那麼底層的資源實際上仍然由兩個例項在共享。其實兩者指向的都是同一塊記憶體。這就是淺複製。什麼是深複製呢?深複製是指不僅複製指標值,還複製指標所指向的資源。cocoa touch框架為nsob...
設計模式 原型模式
1.首先分析原型模式的由來 一般來說,建立乙個物件可以由以下方法 知道物件的具體型別,直接用new生成。不知道型號,知道相應的需求,可以使用工廠方法模式。根據乙個已有的物件來複製為乙個新的物件,可以使用原型模式。2.原型模式可以簡單理解為拷貝原型物件得到新的物件。想象乙個配鑰匙的小店,給店主乙個原有...
設計模式 原型模式
魔術師手拿一張百元大鈔,瞬間又變出兩張。也像配鑰匙一樣,拿一把鑰匙,老師傅就能做出另乙個一模一樣的。像這種複製我們並不陌生,類似於我們設計中的原型模式 本文將從以下幾點 原型模式 概述 結構圖 淺複製深複製 總結 用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。允許乙個物件再建立另外...