我刚刚开始研究如何为一个好的软件系统编写一个好的架构,并且我正在学习如何将高级组件分成层。在这种情况下,我尝试使用层,以便将每个层建模为一个黑盒。
我的架构中有 4 层:表示层、应用程序服务、业务逻辑和域/持久性。就我的问题而言,我们真的只需要关注演示和应用程序服务。
应用服务层将包含一个允许跟踪某个事件的服务。演示文稿将有几个视图,这些视图应该随着事件跟踪模型的变化而动态更新。从本质上讲,我似乎需要一种单向的变化传播机制。
由于我试图将这些层建模为层,因此我想限制每个层的外观对象之间的通信,并在必要时允许层聚合来自较低层的对象,尽管仅由接口知道。
我正在用 Java 编写这个应用程序,所以很明显要使用的是 Observable/Observer。但是,我不喜欢 Observer 接口的更新方法强迫您强制转换对象参数。我想通过为这个机制定义我自己的接口和类来解决这个问题。那么,问题在于应用程序逻辑将依赖于表示层的接口,这对于该架构来说是一个禁忌。这是否表明我应该首先尝试使用 MVC 建模并分层模型?或者使用应用程序服务层中已知的接口对每个视图进行建模会更好。这似乎是一个不好的地方,我被困住了。另外,我使用 View-Handler 设计模式来处理多个视图。