定义
适配器模式
将一个类的接口,转换
成客户期望的另一个接口.适配器
可以让原本不兼容的类可以合作无间.
外观模式
提供了一个统一
的接口,用来防蚊子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使用.
要点
- 当需要使用一个
现有
的类而其接口并不符合
你的需要时,就使用适配器. - 当需要简化并统一一个
很大
的接口或者一群复杂
的接口时,使用外观. - 适配器
改变
接口以符合客户的期望. - 外观将客户从一个复杂的子系统中
解耦
. - 实现一个外观,需要将子系统
组合
进外观,然后将工作委托
给子系统执行. - 适配器模式有两种形式:
对象适配器
和类适配器
.类适配器需要用到多重继承
. -
适配器
将一个对象包装起来以改变其接口;装饰者
将一个对象包装起来以增加新的行为和责任;而外观
将一群对象包装起来以简化接口.
个人理解
外观
和适配器
二者的区别与包装或适配几个类并没有关系,适配器是为了改变接口符合
用户的期望,而外观则是为了提供一个简化
的子系统接口.
这一篇就不上代码了,最近正在优化项目中的代码,针对所学的其实可以做一些下面的优化.以前发送验证码,加密这些功能也仅仅只是封装
了下参数,并提供了一个接口
在各个控制器调用,现在打算采用MVVM
来抽取和剥离,方便下一个项目复用,降低开发成本.
如下图所示,登录
和交易
其实都会用到发送验证码
和特殊加密
这两项功能,我现在打算把这一项功能抽取出来,使用RACCommand
作为一个接口,这个接口也可以通过input
这个参数决定一些执行的内容.
然后在登录
和交易
的VM中将这个借口提供出来,这样当我们需要发送验证码和加密时就可以委托给相应的子系统去执行.
视频播放器的开发其实也用到了外观
,我们便携相应的工具类时会提供play
,pause
,seek
等上层接口,其实内部的操作是很复杂的,例如play
所要操作的解码和渲染等功能.