package com.javapatterns.adapter.classAdapter;
public interface Target
{
/**
* Class Adaptee contains operation sampleOperation1.
*/
void sampleOperation1();
/**
* Class Adaptee doesn't contain operation sampleOperation2.
*/
void sampleOperation2();
}
代码清单1. Target的源代码。 package com.javapatterns.adapter.classAdapter;
public class Adaptee
{
public void sampleOperation1(){}
}
代码清单2. Adaptee的源代码。 package com.javapatterns.adapter.classAdapter;
public class Adapter extends Adaptee implements Target
{
/**
* Class Adaptee doesn't contain operation sampleOperation2.
*/
public void sampleOperation2()
{
// Write your code here
}
}
代码清单3. Adapter的源代码。
类形式的变压器模式的效果
第一、 使用一个实类把源(Adaptee)适配到目标(Target)。这样一来,如果你想把源以及源的子类都使用此类适配, 就行不通了。
第二、 由于变压器类是源的子类,因此可以在变压器类中置换(override)掉源的一些方法。
第三、 由于只引进了一个变压器类,因此只有一个路线到达目标类。问题得到简化。