如何设计一个动态java程序

如何设计一个动态java程序,java,Java,我是Java新手,所以我正在尝试了解Java的一些概念,所以请对我温柔一点 我有一个主控面板类,它包含程序的主控面板,我有一个包含rooms类实例的building类, rooms类包含walls类的实例, 墙包含windows类的实例 基本上,构建建筑时,rooms类的每个实例化都会有不同数量的墙实例,而墙会有不同数量的窗、基本高度和宽度等 设计这个的最佳方法是什么?如创建动态数量的墙和窗,是使用访问器方法的唯一方法?只是在程序的主要部分改变测量值?或者有一种方法将每面墙分别添加到每个房间的a

我是Java新手,所以我正在尝试了解Java的一些概念,所以请对我温柔一点

我有一个主控面板类,它包含程序的主控面板,我有一个包含rooms类实例的building类, rooms类包含walls类的实例, 墙包含windows类的实例

基本上,构建建筑时,rooms类的每个实例化都会有不同数量的墙实例,而墙会有不同数量的窗、基本高度和宽度等

设计这个的最佳方法是什么?如创建动态数量的墙和窗,是使用访问器方法的唯一方法?只是在程序的主要部分改变测量值?或者有一种方法将每面墙分别添加到每个房间的arraylist中?如果是这样的话,最好放在哪里


非常感谢您的帮助。

遵循经验法则

  • 只要你的问题定义有
    has-a
    ,你就有了作文。如果你打算
    有许多
    ,你可以使用一个集合——正如你所说的,
    列表
    的墙和
    列表
    的窗

  • 您还可以将
    窗口
    作为抽象类,并可以将实现用于
    标准窗口
    ManSizeWindow
    ——这是一种
    is-a
    关系。在
    标准窗口中
    是一个
    窗口
    。在你的问题中,你很可能有这种东西,你需要用同样的东西装饰房间,但不同的属性


  • 另外,不要使用僵硬的代码,比如说,类有三个windows属性和三个getter/setter属性。以后您可能会对这种技术感到遗憾。

    也许您可以使用像XML这样简单的数据库,通过via以树状结构设计应用程序。每个建筑构件都可以在节点中定义,每个节点的属性都可以编辑。但是假设我有4个房间,每个房间都有不同数量的墙和窗,如何设置这些???
    room1.getWindows().add(新的标准窗(高度、宽度、颜色))。因此,您可以在任何房间中添加任意数量的
    窗口。因为,
    room.getWindow()
    返回一个
    列表
    ,所以您可以继续添加任意数量的
    窗口。清楚的wallswould在程序的主要部分添加新窗口吗?哦,是这样。你有两个选择。您将设置房间数、每个房间的窗户数、墙数等变量。您可以1。pass作为主类的参数,2。您可以从XML(或者可能是JSON)文件中读取它,您将根据自己的需求对其进行修改。3.或者在主类中有变量,但每次都需要编译。您可以读取参数并根据数字进行迭代。假设对于room1,您有4个窗口,仅循环4次,实例化窗口并添加到房间的窗口列表中。简单的