gpt4 book ai didi

Java-适配器设计模式实现变体

转载 作者:行者123 更新时间:2023-11-30 04:25:26 25 4
gpt4 key购买 nike

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

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 是目标(此处未提供类)。

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

public class ClassAFormat1 implements StringProvider {



public String getStringData() {

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

上面的适配器类是按照适配器设计模式的指导原则编写的吗?

谢谢。

最佳答案

适配器的目的是能够将对象视为其他类的实例。
在您提供的示例中,只需使用 new ClassAFormat1(a) 其中 即可将 ClassA 的实例“视为”StringProvider a 的类型是 ClassA

根据您添加的更改,您无法采用 ClassA 的不同实例并使它们表现为 StringProvider。在这种情况下,ClassAFormat1 不能用作从 ClassAStringProvider 的适配器(因为您不能为其提供任何 实例) ClassA 并使其行为类似于 StringProvider

关于Java-适配器设计模式实现变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com