jswh
2016-12-29 11:29:58 +08:00
我一直不太明白 repository 层存在的意义,觉得没有必要,但是很多 ORM 都会增加这一层。可能是因为我不太喜欢 Model -> Table ,而是喜欢 Table -> Model 的模型定义过程吧。 Laravel 的也是这样的,所以他的 migration 里面提供数据库表的定义工具,并且根据这个自动生成 Model ,而不是根据 Model 来生成 Table 。失去了 Table 定义的功能,再由 Repository 来接管所有的 CURD, Model 层的功能就太单薄了,调用起来还麻烦。
Laravel 有抽象的 CURD 层,但把功能的入口点都绑在了 Model 身上,比如->query()方法,比如 collection ,或者说 Laravel 的 Model 本质是个 Repository ,省掉了 new Repository(Model) 的过程。