File tree Expand file tree Collapse file tree
DesignPatterns/AdapterPattern Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33### 定义
44将一个类的接口转换成客户端希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
55在一个新的项目中,一些所需要的类在旧的项目中就已经存在,但是由于接口的不同导致已有的类无法被复用,而由于项目时间比较紧又无法改造已有的类,这个时候就应该想办法来“适配”已有的类。
6- 系统或模块的数据和处理流程都是正确的,但是接口与新系统不符时,我们就应该考虑使用适配器模式以达到可控范围之外的对象和某个接口相匹配。当需要复用一些现存的类但是其接口与复用接口环境不一致时,适配器模式拥有很高的价值。
6+ 系统或模块的数据和处理流程都是正确的,但是接口与新系统不符时,我们就应该考虑使用适配器模式以达到可控范围之外的对象和某个接口相匹配。当需要复用一些现存的类但是其接口与复用接口环境不一致时,适配器模式拥有很高的价值。
7+ ### 小结
8+ 需要调用我们所开发的代码的对象就是我们经常提到的所谓客户端。在有些情况下,我们往往会发现现有的类已经提供了客户端所需要的某些功能,因此适配器模式的目的就在于:如果客户端需要使用某个类的功能,但是这个类是通过其他接口提供的,那么使用适配器模式就可以为客户端提供一个期望中的接口。
9+ 适配器模式适用于以下情况:
10+ > * 当想要使用一个已经存在的类,但是该类的接口不符合现有需求时。
11+ > * 当需要创建一个可以被复用类,该类能够与其他无关的类甚至不可预见的类协同工作的时候。
12+ > * 当需要使用一些已经存在的子类,但是不可能对所有的都进行子类化以匹配他们的接口时,对象适配器可以对其父接口进行适配。
13+
14+ 通过使用适配器模式,我们可以复用现有的类以满足一个客户端的要求。如果一个客户端在其接口中指定了自身的要求,那么我们就需要创建一个新的类,这个新类通常是希望被复用的类的子类而并非实现了客户端接口的类。这就是创建一个类的适配器,这样就将客户端发出的调用翻译成了对希望被复用的类的调用。
15+ 当客户端没有规范其所需要的接口时,适配器模式仍然可以被使用,在这时就需要创建一个客户端的子类,这个子类使用一个希望被复用的类的实例。这实际上就是创建了一个对象适配器,从而将一个客户端发出的调用转发给希望被复用的类的一个实例。但是这种方案可能会有某种风险,比如在我们无法涵盖客户端所需要调用的所有方法时。
16+
717
818
You can’t perform that action at this time.
0 commit comments