我即将启动一个具有控制台和GUI界面的应用程序。我要实现的是完全将应用程序逻辑与接口分离。将来,我可能还会添加Web界面,我不想在我的应用程序中更改任何内容。
是否有一个很好的例子(也许是一些开源项目),我可以在这里了解如何正确地完成这项工作....我也很感激有关如何做到这一点的建议/指导。
由于
答案 0 :(得分:4)
一种很好的逻辑和ui解耦技术是Model View Presenter模式及其变体(被动视图和监督控制器)。马丁福勒的着作以及许多博客文章都展示了这些模式 我还建议您寻找MVP的另一种变体,称为Presenter First。关于它有一个很好的article,还有一个很好的java code sample(寻找java示例)
答案 1 :(得分:2)
Fowler对GUI架构有一个很好的概述:http://martinfowler.com/eaaDev/uiArchs.html
我个人在我的应用程序中使用PresentationModel构造 - 它使事物的表示方面与业务逻辑完全分开。
答案 2 :(得分:1)
构建您的核心功能(1)和命令行版本(2)首先(到功能上或多或少完成的程度)。注意仔细设计/记录您的API。这样,您就无法在早期将逻辑和GUI部件混合在一起。
一个好的解耦命令行/ GUI应用程序的示例例如是mplayer
(尽管有人可能会认为它感觉就像是一个带有GUI的命令行应用程序)。