1
0
观察者/可观察者通常 不 最好的方法,尤其是在Java中,你必须从可观察到的派生出来,从而浪费你的单个继承。正如您所讨论的,它还会导致耦合,当它跨越层时,这是不好的。 我更倾向于研究纯事件模型,服务提供了一种注册事件侦听器的方法,并可能在发生更改时触发PropertyChangeEvent。 然后,服务层可以通知其他服务,或者通知表示层——它不知道也不关心,只有表示通过注册为侦听器与服务耦合。 |
2
0
在我看来,你的问题不是关于发布/订阅,而是关于如何让层进行通信。 简短回答: 使用MVC/MVP。查阅关于它们的博客文章,下载源代码,并记住:如果你只有一把锤子,那么一切看起来都像钉子。也就是说,不要因为你有模式而应用模式,而是因为你需要它们而应用模式。 长回答: 如果你在Java中工作,我建议 Head First Design Patterns 这将使你以模式的思维方式为导向。当你对设计模式了如指掌之后,我认为你现在正朝着这个方向前进,你可以看看 Patterns of Enterprise Application Architecture . 你可以先跳过这本书,但如果你想了解建筑,我强烈推荐这本书。 一旦你读懂了福勒的书,或者至少对N层企业架构有了基本的了解,你就应该在前进的道路上走得很好。 |