gpt4 book ai didi

Java - 如何为两个类设计一个通用方法

转载 作者:行者123 更新时间:2023-12-02 20:35:54 25 4
gpt4 key购买 nike

我有2个独立的类,但它们都需要重复做一件事,换句话说,有一个共同的方法。方法是这样的:

private String createButton (String cls, String value) {
return "<input type=\"button\" class=\"" + cls +
"\" value=\"" + value + "\" key=\"" + this.id + "\" />";
}

所以这实际上只是一个单行方法,所以我可以将它复制到两个类中。但我想知道是否有更好的方法可以做到这一点。显然,我真的不想有一个仅包含该方法的父类(super class)。另外,我认为仅为按钮创建另一个类并执行以下操作是愚蠢的:new Button(cls,value),不是吗?

我想到的另一个选择是为包提供一个实用程序类,并混合使用辅助函数。那有意义吗?正在做吗?

最佳答案

您可以使用实用程序类...但它可能会变得不连贯。

public class Utilities {

/* What do these methods have in common? */

public String createButton(...) {
return "<input type='button' />";
}

public double calculateCircumference(Circle c) {
return circle.getRadius() * 2 * Math.PI;
}

}

这种代码会通向God Object的黑暗之路。 .

相反,请考虑确定“实用程序”类的目的和意图:考虑将其设为工厂 - 特别是 Abstract Factory从而保持凝聚力。

public class HTMLWidgetFactory implements AbstractWidgetFactory<String> { // the interface might be overkill

/* Oh! This class is clearly used to create HTML controls! */

public String createButton(...) {
return "<input type='button' />";
}

public String createImage(...) {
return "<img src='lena.png' />";
}

}

关于Java - 如何为两个类设计一个通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13499329/

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