那些IOS中你可能使用过的设计模式

微笑本文纯属个人开发IOS时对设计模式的肤浅理解,错误之处,请指出。

设计模式

个人理解设计模式就是开发者在面向对象的开发实践中,根据面向对象的抽象,封装,继承,多态,总结出的解决某些类型问题的通用方法。


设计模式分类

1.创建型模式


2.结构型模式


3.行为型模式


使用场景

一 创建型

1.工厂方法:提供一个创建一系列相关或相互依赖的接口,而无需指定她们具体的类。场景:适用父类创建通用接口,子类去实现。
2.生成器:将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。 场景:适合不适合工厂模式的创建。
3.原型:用原型实例指定创建对象的种类,并且拷贝这些原型创建新的对象。 场景:copy,注意深拷贝和浅拷贝
4.单件:保证一个类仅有一个实例,并提供一个访问她的全局访问点。场景:注意 allocWithZone方法和 copyWithZone方法的重写

二结构型

1.适配器:将一个类的接口转换成客户希望的另外一个接口。场景:适合在已经存在的类之间做接口的转换
2.桥接:将抽象部分与它的实现部分分离,使它们都可以独立的变化。场景:类似适配器,但是是在创建类的时候去分离实现不是在已有类上去分离。
3.组合:将对象组合成树状结构。 场景:自定义UIVIEW
4.享元:运用共享技术有效的支持大量细粒度的对象。 场景:UITableview复用
5.代理:为其他对象提供一种代理以控制这个对象的访问。场景:实现了多继承

三行为模式

1.职责链:使多个对象都有机会处理请求,将这些对象连成一条链,传递请求直到有一个对象处理为止。场景:UI的响应链。
2.命令:将请求封装为一个对象,参数化。 场景:网络请求的参数化。
3.迭代器:提供方法访问聚合对象的各个元素 。场景:请求对列的遍历,增删。
4.中介者:用一个中介对象封装一些列对象交互,各对象之间不用显示的引用,降低耦合。 场景:多个UI的任意跳转,数据结构“图”。
5.备忘录:不破坏封装的前提下,捕获对象的状态,以后用来恢复该对象。 场景:NSCoder。
6.观察者:对象之间的一对多依赖关系,一个对象监听另一个对象的状态变化。 场景:KVO。
7.状态:允许一个对象状态变化时,对象看起来似乎改变了它的类。 场景:状态机,表示网络连接的状态变化。
8.策略:定义一系列算法,把它们一个个封装起来,并且是他们可相互替换。 场景:不同地图平台实现的搜索功能。

总结

一般解决一个问题多个设计模式组合使用,而且一些设计模式功能类似,根据自己的使用场景,选择适合的模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值