使用OOP在业务逻辑对象和数据库之间进行分层的好设计是什么?
答案 0 :(得分:9)
其中任何一个都可行(from Fowler's POEAA):
选择哪个取决于您选择的是哪一个(相同来源):
通常,您的业务对象越接近数据库架构并且以CRUD操作为中心,您的数据源架构和Doman逻辑模式就越简单(但它不必)。如果您发现自己有很多阻抗不匹配或许多业务逻辑与数据库数据没有直接关系,那么您可以选择域模型/数据映射器(也可能包括ORM)。
答案 1 :(得分:2)
您可以采用多种方法,但我想推荐的是DataMapper模式与域模型相结合。有关详细信息,请参阅this page。
通过这种方式,您可以轻松地从域模型(业务逻辑)中分离数据访问。 如果您对OOP有点熟悉,那么上面链接的页面中的UML模型应该阐明方法的方式,以及它如何从业务逻辑中分离数据库逻辑。