gpt4 book ai didi

java - 可以在具体类上使用适配器模式吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:05:23 25 4
gpt4 key购买 nike

我有两个相似的具体类,它们由两个不同的第三方提供(我无法修改它们)。

如果我使用经典的 GoF 适配器模式而不是让我的适配器扩展具体的目标类,是否可以?还是这很糟糕?

例子:

public class A {
public void doSomething() {
// some code
}
}

public class B {
public void similarDoSomethingMethod() {
// some code
}
}


public class BAdapter extends A {
private B b;

public BAdapter(B b) {
this.b = b;
}
@Overrides
public void doSomething() {
b.similarDoSomethingMethod();
}
}

最佳答案

适配器提供客户端类 protected variation在适应者中,如果您按照描述应用它:

Adapter pattern applied

这意味着如果具体的第三方类发生变化,您可以为客户端提供一些保护。

如果您选择扩展 A(即让 A 的接口(interface)成为客户端使用的接口(interface)),如果 A(您无法控制的第三方类)发生变化,您的客户端就会崩溃。

此外,如果您想支持新的第三方扩展,如何将其添加到您的设计中?

请注意,如果 A 在 Adapter 的“干净”应用程序(上文)中发生更改,则只有 ServiceAdapterA 会中断。另外,如果你添加新的第三方实现,你只需要创建一个新的适配器并使适配的服务方法起作用。

关于java - 可以在具体类上使用适配器模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22491368/

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