ios 设计模式自己的小记录

针对接口编程,先写接口 在写内部实现

策略模式: 精简代码,去掉多余的if-else  转化成对象

例如自定义个验证的textfield ,用来验证邮箱或者电话号码,

1.写一个验证的父类:一个验证方法里面不做任何处理,派生两个子类,重写验证的方法来验证邮箱和电话号码。

2.将验证的父类作为属性给textfield

3.初始化 textfield  和他的验证的类

策略模式是在已知的情况下使用

生成器模式:

1.不需要知道细节

2.模块化处理

3.很好的组合特性

一个指导者的协议,多个承包商的协议,每个承包商实现指导者和各自类型的协议

备忘录模式:

第三方好用的序列化代码 fastcoder

可用备忘录模式优化存储方案

纪录和恢复一个uiview 的状态

通知中心模式:(通知中心的类设计为单例)

对象持有问题:用NSHashtable 实现weak引用   和nsset功能一样  进行对象存储

参数的严格验证:

通知中心设计模式,可以使用接口协议让发布订阅不需要使用通知nsnotif来实现,防止通知的坑

原型模式: 支持拷贝自己

写法:可以写一个协议 实现一个叫克隆方法

外观模式:只操作外观的类

复杂的字系统

不关心逻辑

解藕合,简化操作

装饰模式:创建一个装饰者行为要和原始类一致

1.不改变原始类

2.不改变使用继承的情形

3.动态拓展对象的功能

4.持有对象的引用

使用场景:不知道类实现细节,接口,要拓展只能通过拓展装饰者接口(派生类增加方法和属性)

category   增加属性或者方法

桥接模式

abstraction :控制类(抽象)   impl :实现类(抽象)

上层抽象接口职能

实现层抽象接口的职能

层级间的通信协议

代理模式:

协议可以用来规范接口,塞选的作用,代理用来降低偶合度

命令模式:

迭代器模式:

便利访问集合数据,父类生成一个可以访问自身子类的枚举器

适配器模式:

适用于一个数据源相同,但是view的样式不同

模版模式:

多个类根据同一个接口来实现一些相同的操作,例如2个游戏,初始化,开始结束的功能使用统一接口。

中介模式:

用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

组合模式:

将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。掌握组合模式的重点是要理解清楚 “部分/整体” 还有 ”单个对象“ 与 "组合对象" 的含义。

self-manager 模式

uiview 自己管理自己的业务逻辑。但是不要往子类中加入网络请求的奇葩结构,在分类中处理一些数据,使用分类的方式,把原来要写在c的代码放到v的分类中

你可能感兴趣的:(ios 设计模式自己的小记录)