创建类型
单例模式
example:UIApplication, NSBundle, NSNotificationCenter, NSFileManager, NSUserDefault, NSURLCache
工厂模式
提供一个接口,用于创建与某些对象相关或依赖于某些对象的类家族,而又不需要指定它们的具体类。通过这种模式可以去除客户代码和来自工厂的具体对象细节之间的耦合关系。
example:类簇
结构化类型
外观设计模式
外观设计模式向通过封装一个类向外提供接口,隐藏系统本身的复杂。,相比将一系列的类和他们的接口暴露给用户,只需要暴露一些简单的未定义的API。
example:SDK
代理模式
example:tabkeView的datasource
装饰模式
装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。
example:Category
MVC
example:MVVM
适配器模式
适配器模式将一个类的接口适配成用户所期待的。
example:多一层封装,将不适配的地方隐盖起来。
行为类型
观察者模式:
一个目标对象管理所有依赖于它的观察者对象,并在它自身的状态改变时主动通知观察者对象。这个主动通知通常是通过调用各观察者对象所提供的接口方法来实现的。观察者模式较完美地将目标对象与观察者对象解耦。
example:通知,键值监听。
策略模式
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。
状态模式
状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
模板方法模式
这种模式为某个操作中的算法定义框架,并将算法中的某些步骤推迟到子类实现。在运行环境中,框架会在自己所执行的任务过程中的某些点调用这些所谓的一般方法。一般方法为定制代码提供一个结构,目的是为当前正在执行且由框架类负责协调的任务加入具体程序的的行为和数据。
example:VC的声明周期方法。
网友评论