[Objective-C 设计模式]单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
优点
在项目中使用方便,且节省资源,整个项目就一个实例,一般用于通用功能使用。
缺点
单例模式只有在程序关闭后才释放,在很多情况不在使用,也是一种资源占用的浪费。
[Objective-C 设计模式]迭代器模式
迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
优点:
1.抽象出一个迭代器类来负责遍历
2.不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据
缺点:
1.需要遍历的集合类会随着时间的增加而增加,维护起来会比较麻烦
[Objective-C 设计模式]组合模式
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
优点:
1.能够将简单的具有相同行为的对象组合在一起,实现复杂的行为。
2.添加叶节点行为简单,扩张性好。
3.组合模式可以一致的使用组合结构和单个对象。
缺点:
1.如果叶节点数据太大会造成维护成本太高。
总结:需求中说体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式,组合模式适合小面积使用,如果叶节点过多的话,就要考虑其他模式,否则维护起来会越来越复杂。
[Objective-C 设计模式]备忘录模式
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复原先保存的状态。
优点:能很好的封装内部状态,避免客户修改。
缺点:如果内部数据比较多的话,会造成难以维护。
[Objective-C 设计模式]适配器模式
适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
[Objective-C 设计模式]状态模式
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
[Objective-C 设计模式]抽象工厂模式
抽象工厂模式:提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。
[Objective-C 设计模式]观察者模式
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
[Objective-C 设计模式]建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
优点:
1、将复杂产品的创建步骤分解到不同的方法中,使得创建过程更加清晰,使得我们能够更加精确的控制复杂对象的产生过程。
2、将产品的创建过程与产品本身分离开来,可以使用相同的创建过程来得到不同的产品。也就说细节依赖抽象。
3、每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,用户使用不同的具体建造者即可得到不同的产品对象。
[Objective-C 设计模式]外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。