设计模式学习笔记(七)适配器模式和外观模式

定义

适配器模式将一个类的接口,转换成客户期望的另一个接口.适配器可以让原本不兼容的类可以合作无间.
外观模式提供了一个统一的接口,用来防蚊子系统中的一群接口.外观定义了一个高层接口,让子系统更容易使用.

要点

  • 当需要使用一个现有的类而其接口并不符合你的需要时,就使用适配器.
  • 当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观.
  • 适配器改变接口以符合客户的期望.
  • 外观将客户从一个复杂的子系统中解耦.
  • 实现一个外观,需要将子系统组合进外观,然后将工作委托给子系统执行.
  • 适配器模式有两种形式:对象适配器类适配器.类适配器需要用到多重继承.
  • 适配器将一个对象包装起来以改变其接口;装饰者将一个对象包装起来以增加新的行为和责任;而外观将一群对象包装起来以简化接口.

个人理解

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容