作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图用“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/
我是一名优秀的程序员,十分优秀!