Sane Design Alternative

时间:2009-04-10 22:15:00

标签: java oop

我有一个(设计)一个基本上像这样工作的应用程序:

class Main,类BusinessLogic,类UserInterface

BusinessLogic和UserInterface被设计为类似于库 - 不是正在开发的,而是由开发人员使用,例如,Main类。

BusinessLogic的构造函数还实例化UserInterface,它将显示基于文本的菜单并接受终端输入。根据该输入,它将通过调用其各自的BusinessLogic对象的相关方法来执行相关功能。

但是,这是一个循环引用,并且UserInterface没有明显的方法来调用其各自的BusinessLogic对象(没有硬编码的BusinessLogic对象标识符,但这更糟糕的做法!)。

这对我来说似乎是合乎逻辑的设计,但很难在编程术语中实现。

我考虑的一个替代方案就是让UI将输入数据返回给BusinessLogic的构造函数,但我不希望BusinessLogic处理输入分析,UI似乎是合理的选择。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

你应该试试Model-View-Controller pattern。在您的情况下,模型和控制器可能最终相同。通过接口将类彼此隔离,然后在外部创建(从示例中的Main),这将简化每个人的生活。

答案 1 :(得分:-1)

听起来您可能想要使用模型 - 视图 - 控制器模式。

此外,如果您想减少部件之间的实例化依赖关系,您可能需要考虑使用dependency-injection,与Spring一样。