1

我是设计模式主题领域的新手,并且热衷于了解设计模式的实现变体。我在网络上的众多教程中看到了适配器设计模式中适配器类的以下结构。(以下代码示例摘自维基百科)

public class ClassAFormat1 implements StringProvider {
    private ClassA classA = null;

    public ClassAFormat1(final ClassA A) {
        classA = A;
    }

    public String getStringData() {
        return format(classA.toString());
    }
}

如果我没记错的话,ClassA 是适配器,而 StringProvider 是此示例中的目标(此处未提供类)。

我通过在target的方法中定义和初始化adaptee类对上面的代码做了一个小的调整。我知道它很奇怪,但想知道它是否仍然属于适配器设计模式。

public class ClassAFormat1 implements StringProvider {



    public String getStringData() {

               ClassA classA = new ClassA();
        return format(classA.toString());
    }
}

上面的适配器类是否按照适配器设计模式的指导方针编写的?

谢谢你。

4

1 回答 1

2

适配器的目的是能够将对象视为其他类的实例。
在您提供的示例中,ClassA可以StringProvider简单地通过使用new ClassAFormat1(a)wherea的 type is来“处理”实例ClassA

通过您添加的更改,您不能采用不同的实例ClassA并使它们表现为StringProvider. 在这种情况下ClassAFormat1,不能用作从ClassAto的适配器StringProvider(因为您不能给它任何实例ClassA并使其表现得像StringProvider.

于 2013-04-13T06:13:28.373 回答