Objective C--原型模式
来源:互联网 发布:阿里钉钉软件 编辑:程序博客网 时间:2024/05/16 15:25
转载地址 http://ohcoder.com/blog/2012/12/01/prototype-pattern/
今天和大家分享的设计模式是原型模式。首先给大家展示一下基本定义:
原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节,其实我觉得就是多了一个克隆方法而已,所以呢,看起来挺简单的一个功能竟然也是设计模式里的一种,老实说多少有些惊讶哦!
好啦,在继续下面之前,先简单说明一下拷贝(Copy)这个概念。在这个模式里拷贝分为浅拷贝和深拷贝。其实我认为这两种拷贝方式主要是针对指针而言的(C#里叫引用)。好的,我们来看一下具体是指什么。所谓浅拷贝是指如果字段是值类型的,则对该字段执行逐位复制,如果字段是指针(或称为引用)类型,则复制指针(或引用)但不复制指针(或引用)所指向的对象;因此,原始对象及其复本引用同一对象。那么相对于浅拷贝来说,深拷贝的概念就比较容易推出了,即如果字段是值类型,那么会逐位复制,如果字段是指针(或引用)类型,那么会在内存中重新开辟一块儿内存空间把该指针字段所指向的内容完整的复制一份放到新开辟的这块儿内存中,和浅拷贝的不同点就在这里了,深拷贝完成之后,指针(或引用)会指向不同的内存空间互不干涉。
简单解释了一下深拷贝和浅拷贝,下面给出原型模式的类结构图。
上面这幅类的结构图很简单,只有一层继承关系而已,就不过多解释了,下面直接给出两个类型的代码。
注意:本文所有代码均在ARC环境下编译通过。
- Prototype类接口
- Prototype类实现
- ConcretePrototype1类接口
- ConcretePrototype1类实现
- Main方法实现
上面就是一个简单的完整实例,理解起来不难吧,呵呵。第一次看见这个也是一个设计模式的时候都有点惊讶,这竟然也是一个设计模式哦!呵呵,玩笑可以开,还是理解当中的思想才是根本呀,简单的例子并不能说明什么,设计模式的奥妙之处还是需要日后慢慢体会呀,:D !
- Objective C--原型模式
- Objective C 原型模式
- Objective C--原型模式
- 【读书笔记】Objective-C编程之道:iOS设计设计模式解析(1)-原型模式
- 【C++】Chapter6:原型模式
- 【C++】原型模式
- 原型模式(C++)
- Objective-C的方法原型和重载
- Objective-C 委托模式
- Objective C--观察者模式
- Objective C--外观模式
- Objective C--访问者模式
- Objective C--命令模式
- Objective C--代理模式
- Objective C--装饰模式
- Objective C--策略模式
- Objective C--迭代器模式
- Objective C--组合模式
- C/C++开发中遇到的时间Time计算
- Reading mails using IMAP and MailSystem.NET
- CodeForces 126D
- [转]用反射+特性列出所有的枚举变量及其描述信息,绑定到DropDownList上。
- 从Nutch的输出日志分析其流程
- Objective C--原型模式
- python数据结构的-----列表
- 黑马程序员_JAVA多线程_1
- spring MVC的配置方法
- shu_1572 涂色游戏
- 谈一谈我最喜欢的诗人--法国诗人波德莱尔
- 黑马程序员--Java学习20--网络编程技术
- java抽象类和继承关系
- APP并非一个人在战斗,还有API—Xamarin.Android回忆录