我在许多书籍中读到,在分层架构中,一个层应该只使用它下面的层提供的服务。企业应用程序中常用的层有:
- 介绍
- 商业
- 持久性
这意味着业务层的服务(包含业务逻辑)应该只访问持久层提供的服务。
我有一个向用户发送消息的 MessageService。每当对象的状态发生重大变化时,必须通知所有关联的用户该变化。这意味着识别更改的业务层服务必须使用 MessageService 发送消息。但是 messageService 本身就在业务层,因此同一层的其他服务不应访问它。
那么如何在不违反代码架构的情况下使用MessageService呢?