9.2 其他适配器模式
上节我们实现的适配器称为对象适配器(Object Adapter),RoundPegAdapter适配器依赖于IRoundPeg对象,可以说,我们是使用了合成的方式重用了IRoundPeg的功能,除了使用合成外,我们还可以使用继承的方式实现适配器,UML静态类图如图9-4所示。
图9-4
RoundPegAdapter2类继承于RoundPeg类并实现IPeg接口,而insertIntoHole()方法把请求转发给父类的insertIntoRoundHole()方法,即:
我们把使用继承方式实现的适配器称之为类适配器(Class Adapter),这种情况在一些支持多继承的语言中(比如C++,Python等),应用的比较多,在不支持多继承的语言里应用的并不是很广泛。