我试图将我的DAL与业务层分开,并且这样做时,我决定避开任何ActiveRecord方法并使用DataMapper方法。 换句话说,我的域对象不会照顾自己。在这样做的时候,我似乎正在蚕食“贫血域模式”的反模式。例如,我的程序中的一个实体是一个组织。处理贫血域模型
一个组织被表示为这样的事情:
class Organization {
private $orgId;
private $orgName;
// getters and setters
}
所以基本上这个组织确实没有什么比其他的行为作为“袋”(马丁·福勒说)的一些数据。在PHP世界里,它只不过是一个荣耀的数组。没有与之相关的行为。
在程序中的行为,我一直坚持在“服务级别”类中,像OrganizationService,它主要作为这些对象和DAL之间的中介。
除了PHP可能出现的缩放问题(我还有其他原因,为什么我坚持要在这些对象中“装袋”我的数据),这种方法完全关闭吗?
你在这些情况下如何处理你的领域模型? 也许一个组织不是我的第一个地方的一部分?
如果域模型无法访问DataMapper,那么如何在域模型中使用AssociateEmployee方法? – bestattendance 2015-01-27 20:24:52