1. 模式理解
提供一个adpater中间层,这个中间层的作用就是把不统一的输入转换成统一的输出
2. 解决一个什么样的问题
假设要实现,已知接口I,类A、B、C.....不确定数量的众多类,现在提供了一个方法仅能接收接口I类型的参数并且通过调用I的方法来访问A、B...类
- 实现1:直接对每一个类实现接口I,这样就能够访问每一个类了
分析:这样做虽然达到了目的,但是这样会修改A、B....类的代码本身,不符合对修改关闭的原则 - 实现2:为了面向扩展并且避免修改以及面向接口的编程体验,我们提供一个中间层adapter,它作为接口I的直接实现者,持有A、B...等类的引用,在根据情况
3. 实例
以上一篇观察者模式中的例子接着说,在必须要调用Observer.onChanged()的前提下,为了不影响TextView本身即TextView不能直接实现Observer接口,并且为了保证可扩展性(可能还会有ImageView.setSrc()),此时为了将TextView.setText()或者ImageView.setSrc这样的输入转换为Observer.onChanged,我们就必须要提供一个中间层,即adapter,在onChanged中进行转换。
网友评论