gpt4 book ai didi

Java设计困惑

转载 作者:行者123 更新时间:2023-11-30 04:52:14 24 4
gpt4 key购买 nike

我在JAVA程序的设计方面遇到了一些麻烦,我想过几种方法,但我不知道哪种方法最好,或者是否有更好的方法它?。下面是一种方法的示例

                         << ABSTRACT >>
Rooms class

extends extends extends
Room TYPE U Connector X Connector U


AGGREGATE walls - into each room type

我感到有点困惑的原因是,我使用的 3 种不同类型的房间仅在属性值(高度、宽度等)上有所不同,但都具有相同的属性。这是否有必要为每种房间类型创建一个新类别?

或者我应该用另一种方式来做,即拥有一个房间类并为每种房间类型实例化三次,然后通过 setter 和 getter 更改其属性?

因为我必须设置每个房间的属性及其聚合的墙属性,这可能会变得很长!

非常感谢任何帮助。

最佳答案

如果房间仅属性值不同,请考虑使用 factory风格的图案。这是一个简单的例子:

class Room {

// room properties
int x, y, z;

// constructor taking properties
public Room (int x, int y, int z) {
this.x = x;
this.y = y;
this.z = z;
}

// factory methods
public static Room createRoomType1() {
return new Room(100, 200, 300);
}

public static Room createRoomType2() {
return new Room(400, 500, 600);
}

}

工厂方法就像不同类型房间的“预设”构造函数。这在重复/属性设置和过多的类之间取得了平衡。

关于Java设计困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590505/

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