存储库模式的缺点是它的成本(比活动记录花费更多的时间)。好处是更高的抽象性,这确实有助于处理复杂的业务逻辑。
活动记录的缺点是可测试性较低(需要db交互),并且难以处理复杂的域逻辑。
我在考虑对简单的CRUD使用Active record,对复杂的域对象使用Repository。
我不认为这是错误的,但是一旦你有了一个存储库组件,让更简单的域对象也使用它似乎就没有更多的工作了。