Java设计混乱

Java设计混乱,java,Java,我在JAVA程序的设计方面遇到了一些问题,我考虑过几种方法,但我不知道哪种方法最好,或者是否有更好的方法?。下面是一个例子 << ABSTRACT >> Rooms class extends extends extends Room TYPE U Connector X

我在JAVA程序的设计方面遇到了一些问题,我考虑过几种方法,但我不知道哪种方法最好,或者是否有更好的方法?。下面是一个例子

                         << 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
构造函数中。