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 1212> * 当需要使用一些已经存在的子类,但是不可能对所有的都进行子类化以匹配他们的接口时,对象适配器可以对其父接口进行适配。
1313
1414通过使用适配器模式,我们可以复用现有的类以满足一个客户端的要求。如果一个客户端在其接口中指定了自身的要求,那么我们就需要创建一个新的类,这个新类通常是希望被复用的类的子类而并非实现了客户端接口的类。这就是创建一个类的适配器,这样就将客户端发出的调用翻译成了对希望被复用的类的调用。
15- 当客户端没有规范其所需要的接口时,适配器模式仍然可以被使用,在这时就需要创建一个客户端的子类,这个子类使用一个希望被复用的类的实例。这实际上就是创建了一个对象适配器,从而将一个客户端发出的调用转发给希望被复用的类的一个实例。但是这种方案可能会有某种风险,比如在我们无法涵盖客户端所需要调用的所有方法时。
15+ 当客户端没有规范其所需要的接口时,适配器模式仍然可以被使用,在这时就需要创建一个客户端的子类,这个子类使用一个希望被复用的类的实例。这实际上就是创建了一个对象适配器,从而将一个客户端发出的调用转发给希望被复用的类的一个实例。但是这种方案可能会有某种风险,比如在我们无法涵盖客户端所需要调用的所有方法时。
16+
17+ 想使用一个已经存在的适配器模式,而它的接口却不符合你的需求时,可以创建一个可以复用的类,该类可以与其他不相关的类或者不可预见的类协同工作。当想要使用一些已经存在的子类,但是不可能对每一个都进行子类化一一匹配它们的接口,对象适配器可以适配他们的父类接口。
18+ 适配器模式分为类适配器和对象适配器,两者的分别如下:
19+ > * 对象适配器:不是通过继承方式,而是通过对象组合的方式来讲进行处理。
20+ > * 类适配器:通过继承的方式来实现,将旧系统的方法进行封装。对象适配器在进行适配器之间转换过程中,无疑使用类适配器也能完成,但是依赖性会变大,并且根据适配要求的灵活性,可能通过继承系统会膨胀到难以控制。
21+
1622
1723
1824
You can’t perform that action at this time.
0 commit comments