Java设计混乱
我在JAVA程序的设计方面遇到了一些问题,我考虑过几种方法,但我不知道哪种方法最好,或者是否有更好的方法?。下面是一个例子Java设计混乱,java,Java,我在JAVA程序的设计方面遇到了一些问题,我考虑过几种方法,但我不知道哪种方法最好,或者是否有更好的方法?。下面是一个例子 << ABSTRACT >> Rooms class extends extends extends Room TYPE U Connector X
<< ABSTRACT >>
Rooms class
extends extends extends
Room TYPE U Connector X Connector U
AGGREGATE walls - into each room type
>
客房类
延伸
房间类型U接头X接头U
将墙聚合到每个房间类型中
我感到有点困惑的原因是,我使用的3种不同类型的房间仅在属性值(高度、宽度等)上有所不同,但都具有相同的属性。这是否保证为每种房间类型创建一个新类
或者我应该用另一种方法来实现,即使用one rooms类,为每个房间类型实例化三次,然后通过setter和getter更改其属性
因为我必须设置每个房间的属性及其聚集的墙属性,这些属性可能会很长
<>任何帮助都是非常感谢的。 < P>如果房间的属性值不同,请考虑使用--样式模式。下面是一个简单的例子:
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);
}
}
工厂方法类似于不同类型房间的“预设”构造函数。这在重复/属性设置和类太多之间取得了平衡。不确定是否可以用给出的信息以有意义的方式回答。如果它们只是大小不同,则完全取决于您想要如何识别/使用它们。听起来你应该有一个接受维度的ctor,而不是实例化然后设置。如果你想要一个好的答案,你真的需要用更多的细节来解释你的问题。就目前而言,你的问题几乎无法理解。你应该从定义这个问题开始:“考虑一个有很多房间的房子,每个房间都有不同的尺寸和不同的墙数……我提出了以下设计和建议。”。我希望这会使senseYeah-hmmm更具吸引力,那么当我在wall数组列表中为一个房间实例化4面墙时,wall类又如何呢。每面墙可能有不同的尺寸?。你能为这些提供工厂方法吗?像createroomType1 walls,然后在该方法的内部实例化房间拥有的四面墙?所有房间共有的东西,例如
Wall
实例化,放入room
构造函数中。