记录事件目前,我有这样的结构:放置位置信息,并使用POEAA
Domain Model <---> Data Mapper ---> Database
说我加一个孩子“文件”对象的“项目”对象。我想为该项目自动创建一个表示更新的子注释对象。现在,这个注释的创建由'项目文件映射器'处理 - 在'uploadFile'方法中,新的注释被实例化和填充,并且调用“注释映射器”来保存该注释。该项目在询问其子女笔记时调用笔记映射器,以此类推文件。
或者说我删除了一个'project'对象 - 我想删除子注释和文件,所以在'projectProperty'方法'deleteProject'中,调用'projectNoteMapper'和'projectFileMapper '来处理删除这些文件。
我现在开始遇到其他情况,特别是自实施私人消息系统以来。我希望用户能够订阅项目和票据并接收有关更新的消息。我也想要实现用户行为的深层日志记录(包括存储序列化对象以用于制表)。
我明白我一直在做事情的方式不符合“单一责任原则” - 毕竟,映射器的目的只应该是在数据源和它们各自的对象之间映射信息,对吗?我的问题是 - 我应该实施的下一个'图层'是什么,我错过了什么?我已经阅读了“仓库”和“服务”。
感谢您的回复。 当谈到项目和项目文件的映射器时,每个都使用多个“资源” - 即多个表,或者在项目文件,系统目录以及数据库表的情况下。出于这个原因(两个对象之间的显着差异),我觉得他们都应该拥有自己的映射器。然后,这个问题正在协调... ...和您发布的链接(我也有这本书)似乎服务层就是这样。发布这个问题之后,我已经开始实施这个模式,并且这很好。谢谢 – tuespetre 2012-03-25 15:54:04