iOS 中常见的设计模式

iOS中常见的设计模式

1.工厂方法模式(Factory Method)

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

+(instancetype)buttonWithType:(UIButtonType)buttonType;
[NSNumber numberWithBool:YES]
[NSNumber numberWithInt:1]

2.享元模式(Flyweight)

运用共享技术有效地支持大量细粒度的对象,减少同一类对象的大量创建,以减少内存占用,提高项目流畅度。

UITableViewCell的复用

参考链接:

https://www.jianshu.com/p/f9c53b9825e4

3.迭代器模式(Iterator)

提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。

iOS的Block迭代、数组迭代都是迭代器模式的典型实现。

4.单例模式(Singleton)

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

iOS的UIApplicationDelegate就是一个单列模式的实现。

5.观察者模式(Observer)

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

iOS中的KVO、NSNotication都是观察者模式。

6.职责链模式(Chain of Responsibility)

使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

iOS事件的传递和响应就是职责链模式的实现。

7.备忘录模式(Memento)

在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

https://www.jianshu.com/p/bbcbcc7ea749

iOS对对象的归档接档。

8.原型模式(Prototype)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是非常简单的一种设计模式, 在多数情况下可被理解为一种深复制的行为。在Objective-C中使用原型模式, 首先要遵循NSCopying协议(OC中一些内置类遵循该协议, 例如NSArray, NSMutableArray等)。还有KVO的实现原理也是原型模式。



作者:SoaringHeart
链接:https://www.jianshu.com/p/b7bc8c842cc2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发布了81 篇原创文章 · 获赞 68 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/li198847/article/details/104080219