gpt4 book ai didi

java - 对于在实现相同接口(interface)的所有类中重复的方法实现,应使用什么设计模式?

转载 作者:行者123 更新时间:2023-12-01 17:14:32 26 4
gpt4 key购买 nike

我试图用“union find”制作一个面向对象的示例。

所以我有一个名为 UF 的接口(interface),

public interface UF {
boolean connected(int p,int q);
void printArray();
void union(int p,int q);
}

以下类实现了quickFindUF、quickUnionUF、quickWeightedUnionUF但它们都共享一个实现相同的函数(函数 printArray())

避免重复 printArray() 代码的最佳模式是什么?我是否创建一个调用 ArrayPrinter 的类,并在所有实现 UF 的类中的 printArray() 中将数组传递给它?

有没有什么模式可以让我不进行抽象继承而只使用接口(interface)来做到这一点。因为继承限制了我的设计,如果我继承一个类,我将无法继承任何其他内容,我不会仅针对 printArray() 方法进行该限制...

最佳答案

你可以有一个像这样的抽象类 AbstractUF :

public abstract class AbstractUF implements UF{
public abstract boolean connected(int p,int q);
public void printArray() {
//implementation
}
public abstract void union(int p,int q);
}

并从 AbstractUF 继承您的类,因此只需(覆盖并)实现其他 2 个函数

关于java - 对于在实现相同接口(interface)的所有类中重复的方法实现,应使用什么设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740675/

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