×

iOS的设计模式分析

消耗积分:0 | 格式:rar | 大小:0.2 MB | 2017-09-25

分享资料个

背景: 最近正在考虑换工作,恰好中间有空档期,就来深入学习一下 iOS 的设计模式,虽然都老生常谈了,但是这方面确实是自己的学习盲区,遂抽空来继续深入研究一下吧

文章目录

1 对象创建

1.1原型(Prototype)

1.2工厂方法(Factory Method)

1.3抽象工厂(Abstract Factory)

1.4生成器(Builder)

1.5单例(Singleton)

2 接口适配

2.1 适配器(Adapter)

2.2 桥接(Bridge)

2.3 外观(Facade)

3 对象去耦

3.1 中介者(Mediator)

3.2 观察者(Observer)

4 抽象集合

4.1 组合(Composite)

4.2 迭代器(Iterator)

5 行为扩展

5.1 访问者(Visitor)

5.2 装饰(Decorator)

5.3 责任链(Chain of Responsibility)

6 算法封装

6.1 模板方法(Template Method)

6.2 策略(Strategy)

6.3 命令(Command)

7 性能与对象访问

7.1 享元(Flyweight)

7.2 代理(Proxy)

8 对象状态

8.1 备忘录(Memento)

1 对象创建

1.1 原型(Prototype)

定义:使用原型实例指定创建对象的种类,并通过复制这个原型创建新的对象。

NSArray *array = [[NSArray alloc] initWithObjects:@1, nil];

array 就是原型了,array2 以 array 为原型,通过 copy 操作创建了 array2。

当创建的实例非常复杂且耗时,或者新实例和已存在的实例值相同,使用原型模式去复制已经存在的实例效率更高。

1.2 工厂方法(Factory Method)

定义: 创建对象的接口,让子类决定实例化哪一个类。工厂方法使得类的实例化延迟到其子类。

工厂方法的最初定义好像是专注于让子类决定创建什么对象,有一种变体,抽象类使用工厂方法创建其私有子类或任何其他类的对象,

iOS的设计模式分析

image.png

如上图,+ create():Product 就是工厂方法,ConcreatFactoryA 与 ConcreateFactoryB 就是两个工厂类,ConcreateProductA 与 ConcreateProductB 就是两个工厂类对应的产品类,通过不同的工厂生产不同类型的产品,且两个产品类最终返回的是他们的父类 Product,隐藏了对象的具体类型。工厂方法模式让创建的对象拥有一组共同的接口,使我们无需关心做了不同类型接口的具体实现,只需要调用 Product 的接口就行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !