擅长:python、mysql、java
<ol>
<li><p>我之所以使用datamapper而不是activerecord的唯一原因是如果您有严重的可伸缩性问题。datamapper鼓励分离域对象和数据库访问逻辑,而activerecords将数据库访问逻辑放在域对象中。例如,当您提升Flask实例时,它将只在需要时连接到数据库,而在Django中,它将始终连接到数据库。</p></li>
<li><p>数据映射器将域对象与数据库访问逻辑隔离开来,而存储库模式是域对象和数据映射器之间的一层。它比数据映射器高一级。例如,在数据映射器模式中,您将拥有直接的getter和setter,在repository模式中,您将拥有可能还包含一些复杂业务逻辑的getter和setter。</p></li>
<li><p>数据映射器与模型类分离。只有活动记录模式连接同一类中的getter和setter。</p></li>
<li><p>我已经使用SQLAlchemy和Django一段时间了,我肯定更喜欢类似Django的查询。对于我自己的项目,我使用Flask+SQLAlchemy而不是Django的可能性几乎为零。在考虑这两个框架时,生产力和社区是两个最具决定性的因素。</p></li>
</ol>