什么是CategoryCategory模式用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择。新添加的方法同样也会被被扩展的类的所有子类自动继承。当知道已有类中某个方法有BUG,但是这个类是以库的形式存在的,我们无法直接修改源代码的时候,Cate...
分类:
移动开发 时间:
2015-08-19 10:52:47
阅读次数:
149
委托(delegate)也叫代理是iOS开发中常用的设计模式。我们借助于protocol(参考博文:objective-c协议(protocol))可以很方便的实现这种设计模式。什么是代理?苹果的官方文档给了很清晰的解释:Delegation is a simple and powerful pat...
分类:
移动开发 时间:
2015-08-19 10:46:48
阅读次数:
149
iOS设计模式 - 生成器原理图说明生成器模式可以理解为零部件组装工厂,与工厂方法是非常相似的!源码https://github.com/YouXianMing/BuilderPattern//// VehicleBuilder.h// BuilderPattern//// Created b...
分类:
移动开发 时间:
2015-08-18 20:59:50
阅读次数:
281
何为备忘录模式? ????在响应某些事件时,应用程序需要保存自身的状态,比如当用户保存文档或程序退出时。例如,游戏退出之前,可能需要保存当前会话的状态,如游戏等级、敌人数量、可用武器的种类等。游戏再...
分类:
移动开发 时间:
2015-08-17 01:14:45
阅读次数:
190
委托是指给一个对象提供机会对另一对象中的变化做出反应或者相应另一个对象的行为。其基本思想是协同解决问题。在程序中:一般情况下1.委托需要做的工作有: 1.1定义协议与方法 1.2声明委托变量 1.3设置代理 1.4通过委托变量调用委托方法2.代理需要做的工作有: 2.1遵循协议 2.2实现委托方法....
分类:
移动开发 时间:
2015-08-16 00:30:35
阅读次数:
214
命令模式:将请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 Command: 为Invoker所知的通用接口(协议) ConcreteCommand: 具体的命令对象,将Rec...
分类:
移动开发 时间:
2015-08-14 01:23:52
阅读次数:
190
备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 Originator(原发器):记录当前时刻的内部状态,负责定义哪些属于需要备份的...
分类:
移动开发 时间:
2015-08-13 01:21:09
阅读次数:
166
一个简单的Car模型,含有1台Engine、4个Wheel,使用访问者模式添加对Car的升级与维修操作。 ? ? ? 定义Engine类: //
//??NimoEngine.h
//??VisitorDemo
//
//??Created?by?fu?zheng?on?1...
分类:
移动开发 时间:
2015-08-12 17:07:22
阅读次数:
210
iOS设计模式 - 单例原理图说明1. 单例模式人人用过,严格的单例模式很少有人用过2. 严格的单例模式指的是无法通过常规的 alloc init 方法来生成对象,派生出来的子类也不能产生出对象,而只能通过单例的方法获取到对象源码https://github.com/YouXianMing/Sing...
分类:
移动开发 时间:
2015-08-06 22:05:55
阅读次数:
204
iOS设计模式 - 代理原理图说明1. 代理模式大家都用过,但用抽象基类NSProxy实现代理估计鲜有人用2. 本人用NSProxy实现了代理模式,对于理解消息转发机制有点帮助源码https://github.com/YouXianMing/ProxyPattern//// AbstractPro....
分类:
移动开发 时间:
2015-08-04 22:25:47
阅读次数:
133