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