zoukankan      html  css  js  c++  java
  • 设计模式之适配器模式温故知新(九)

    点点点,client at me now


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

    适配器属于补救措施

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

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

  • 相关阅读:
    python-使用pyecharts绘制各省份985学校数量图
    python-将多个表格的信息合并到一个表格中
    python-使用百度AipOcr实现表格文字图片识别
    python安装OCR识别库
    python-一种去掉前后缀获取子串的方法
    python-一种字符串排序方式
    How to write educational schema.
    RabbitMq related
    OPENId是什么, OAUTH 是什么
    使用abp的 redis cache
  • 原文地址:https://www.cnblogs.com/denghailei/p/6727460.html
Copyright © 2011-2022 走看看