我正在处理一个非常简单的应用程序,它是学校项目的一部分。
这是一个非常基本的基于控制台的员工管理系统,您可以在其中添加 4 种类型的员工(全职、兼职、合同、季节性,所有这些都具有几个不同的属性。)
我遇到的问题是在显示用于修改特定员工类型的菜单时。
对员工类型进行 switch 语句显然是非常糟糕的设计,但是在每个员工类中添加“DisplayModificationMenu”以便它可以显示自己的菜单似乎也很糟糕,因为显示菜单似乎不是员工的适当职责对象本身。
解决此设计问题的最佳方法是什么?我考虑过创建一个 Menu 类并对每个菜单进行子类型化,以便每个菜单都可以显示自己,但即便如此,我仍然觉得类型的开关仍会在某处发生,以决定要实例化哪个菜单。
修改员工的工作流程是通过 ID 选择员工,然后应显示该员工类型的正确菜单。因此,即使使用子类型菜单,您似乎也必须在知道要实例化哪个菜单之前检查员工类型。
提前感谢您的任何建议。