我有一个(设计)一个基本上像这样工作的应用程序:
class Main,类BusinessLogic,类UserInterface
BusinessLogic和UserInterface被设计为类似于库 - 不是正在开发的,而是由开发人员使用,例如,Main类。
BusinessLogic的构造函数还实例化UserInterface,它将显示基于文本的菜单并接受终端输入。根据该输入,它将通过调用其各自的BusinessLogic对象的相关方法来执行相关功能。
但是,这是一个循环引用,并且UserInterface没有明显的方法来调用其各自的BusinessLogic对象(没有硬编码的BusinessLogic对象标识符,但这更糟糕的做法!)。
这对我来说似乎是合乎逻辑的设计,但很难在编程术语中实现。
我考虑的一个替代方案就是让UI将输入数据返回给BusinessLogic的构造函数,但我不希望BusinessLogic处理输入分析,UI似乎是合理的选择。
有什么想法吗?
答案 0 :(得分:2)
你应该试试Model-View-Controller pattern。在您的情况下,模型和控制器可能最终相同。通过接口将类彼此隔离,然后在外部创建(从示例中的Main),这将简化每个人的生活。
答案 1 :(得分:-1)
听起来您可能想要使用模型 - 视图 - 控制器模式。
此外,如果您想减少部件之间的实例化依赖关系,您可能需要考虑使用dependency-injection,与Spring一样。