Java - 选择设计模式 - 2 个具有相同方法的接口(interface),除了一个有一个额外的参数

标签 java interface

所以我有 2 个接口(interface)(如下所示),1 个用于常规/免费套件,另一个用于可购买套件。它们都包含 2 个方法,但在可购买套件的“getIcon”方法中,我需要玩家的个人资料作为参数,以便我可以检查他们是否购买了该套件。

用于链接这两个接口(interface)的最佳设计模式是什么?你能告诉我执行此操作的代码吗?

2个接口(interface):

public interface Kits {

    void giveKit(Player player);

    Item getIcon();
}


public interface PurchasableKits {

    void giveKit(Player player);

    Item getIcon(Profile profile);
}

我尝试使用适配器模式,但它似乎不正确,因为“getIcon”方法将配置文件作为参数,但它没有被使用。

public class KitAdapter implements PurchasableKits {

    private Kits kits;

    public KitAdapter(Kits kits) {
        this.kits = kits;
    }

    @Override
    public void givetKit(Player player){
        kits.giveKit(player);
    }

    @Override
    public void getIcon(Profile profile){
        kits.getIcon();
    }

}

提前致谢

最佳答案

您有 1 个接口(interface) PurchasableKits。免费的 Kit 将实现该接口(interface)并调用 getIcon(null)。

危险信号是这两个接口(interface)几乎完全相同。没有任何设计模式能让您摆脱所造成的情况。

关于Java - 选择设计模式 - 2 个具有相同方法的接口(interface),除了一个有一个额外的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44059213/

相关文章:

c - 多个以太网接口(interface) - 如何创建一个单独的网络并从 C 代码访问

c - 如何在运行不同的 C 文件时从命令行调用可执行 C 文件?

javascript - 如何确保 typescript 模块符合接口(interface)

java - Twitter4j 流 api 调用抛出类未找到异常

java - 在 Eclipse RCP 应用程序中,您可以在您的pluginCustomization 文件中定义透视图吗?

java - Guava ImmutableList 静态函数 checkNotNull 未找到

java - 将数据分块同步到服务器会导致 StackoverflowException

java - 在嵌套枚举实现接口(interface)中继承泛型类型

java - 将 Google map 添加到 Flutter 时找不到 API key

Java缩放图像