gpt4 book ai didi

java - 哪种设计模式用于创建继承对象?

转载 作者:行者123 更新时间:2023-12-01 12:55:34 25 4
gpt4 key购买 nike

我在这样的继承结构中有多个对象:

public class ImageButton extends JButton {
private Image image;

public ImageButton(Image i) {
this.image = i;
}
}

public class ColorButton extends JButton {
private Color color;

public ColorButton(Color c) {
this.color = c;
}
}

所有对象都扩展了 JButton。还有更复杂的对象扩展 ImageButton 类等等。我想使用抽象工厂模式,但我的问题是,构造函数为每个类采用不同的属性。

用什么模式可以实现好的创作方式?

最佳答案

您可以为此使用静态工厂方法。我可以在这里指出的一个灵感示例是 Guava 的 Lists ,它定义了其他工厂

  • newArrayList(E... elements)(给定元素的数组列表)
  • newArrayListWithCapacity(int initialArraySize)(带容量的空数组列表)
  • newLinkedList()(空链表)
  • ...

这是基于您希望简化按钮对象的创建的理解,对此我认为静态工厂方法非常适合。

您自己的代码可以包括这样的方法(在同一个类中,甚至接口(interface)中):

public static JButton imageButton(Image i) {
return new ImageButton(i);
}
public static JButton colorButton(Color color) {
return new ColorButton(color);
}
public static JButton greenButton() {
return new ColorButton(Color.GREEN);
}

关于java - 哪种设计模式用于创建继承对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61381667/

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