设计模式之适配器模式温故知新(九)

点点点,client at me now


适配器模从实现方式上分为两种, 类适配器和对象适配器, 这两种的区别在于实现的方式上的不同, 一种采用继承, 一种采用组合的方式. 另外从使用的目的上来说, 也可以分为两种. 特殊适配器和缺省适配器, 这两种的区别在于使用目的上的不同, 一种复用原来的代码并失配当前的接口, 一种为了提供缺省的实现, 避免子类需要实现不该实现的方法.

适配器属于补救措施

  • 涉及到了观察者模式继续巩固一下传送
  • 当我们需要复用一个类的功能, 有想要实现某个接口的功能, 实际上就是使用继承实现
    • 这是最简单的适配器模式, 也就是 类适配器
  • 比如User extends BaseUser 很常见的, 然后呢我需要扩展功能, 弄个ObservableUser继承于User, 这样User就被观察了
    • 这里实现方式是对象适配器
  • 问题很明显, 要是有其他的类也需要扩展呢, 我们可以ObservableBaseEntity extends BaseEntity 其他的子类继承该类就可以了
    • 这里的使用目的可以看作是特殊适配器
  • 但是有的时候我们的接口设计的比较大也就是 方法太多了 这样缺省适配器就出现了
    • 我们有一个手机的接口
    • 手机的大体都会有一些默认的条件 比如打电话之类的, 但是由于某些特殊的原因, 有些手机是不允许上网的, 缺省适配器就是来默认实现空方法, 然后需要使用这个类的时候只需要复写就可以了

这一篇的篇幅比较短主要是把之前的观察者模式, 接口最小化里氏替换原则温习一遍

posted @ 2017-04-18 13:59  hassenli  阅读(222)  评论(0编辑  收藏  举报