繁体   English   中英

如何在Java中显示多个“菜单”类

[英]How to go about display multiple “Menu” classes in java

大家好,我是OOD和Java的新手,因此不确定如何正确执行此操作。

当前,我需要创建一个应用程序(基于控制台/命令提示符),该应用程序需要经历一系列所谓的“菜单”,其中该应用程序将显示您的选择,然后输入1/2/3/4等。我的教授告诉我中断我的边界类(所有选择项都在其中的类),因为它太长了(400多行)。

现在出现了问题。 如果要分解它,则必须继续创建新的对象类,以在不同类中的不同菜单上进行调用。 例如:

假设我有MainMenu,FoodMenu,DrinkMenu。 因此,我的main方法将创建一个MainMenu对象来调用displayMenu()。 从那里开始,如果要导航到食物菜单,则必须创建另一个FoodMenu对象,然后在其下再次调用displayMenu()。 沿着代码进一步,如果我想导航回到主菜单,那么我将再次不得不再次创建MainMenu对象并调用displayMenu。

上面的方法将有那么多变量要等待被垃圾回收,并且会浪费内存。 是否有其他解决方案? 提前非常感谢您。

哈林

如果您尚未执行所有菜单,请扩展一个抽象类 (确定)或实现一个接口 (更好)。

至于如何进入菜单,您可以只将每种菜单中的一种存储在菜单数组或其他集合中(例如,如果希望使用字符串或其他对象来查找它们,则为Map )。 。 使该集合可全局访问(在某些public类中为static ),然后可以在每次需要时显示菜单的相同实例。

首先,当您有成千上万个对象而不是……漂浮时,就会发生垃圾收集问题。 因此,甚至不必担心。

但是总的来说,您需要重新创建所有这些对象的观点是有缺陷的。 您只需要其中之一,他们只需要能够访问彼此的引用。 例如,每个“ displayMenu”方法都可以将Menu作为参数。 该displayMenu()方法将进行设置,以便“返回上一菜单”选项可调用作为参数传递的菜单。

如“ 如何使用动作”中所述, Action类是“从组件中分离功能和状态”的便捷方法。 这个例子创建使用的情况下,最近文件的菜单RecentFile类。 每个MainMenuFoodMenuDrinkMenu都有一个相似的类可能是封装相关菜单项的一种方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM