探究Repository模式的兩種寫法與疑惑


現如今DDD越來越流行,園子里漫天都是介紹關於它的文章。說到DDD就不能不提Repository模式了,有的地方也叫它倉儲模式。

很多時候我們對Repository都還停留在Copy然后使用的階段, 我注意到Repository模式有兩種流行的設計方式。

今天我就是想跟大家討論下這兩種設計方式之間的區別,同時弄清楚哪種方式更合理(無需糾結代碼細節),見下圖:

左右兩邊代碼比較:

1、左邊的Repository代碼在實際使用中是最常見的,右邊的使用更少一些。

2、左邊代碼的更難理解一些,右邊的代碼中規中矩,易於理解。

3、左邊代碼使用了IUserRepository : IRepository<User>,選擇的是接口的繼承,將Repository中對Entity的操作抽象為通用的CRUD操作和Entity的特殊操作兩部分,但整體看起來是先分開后合並為一體,而右邊的則沒有采用接口繼承方式。

 

上面是我個人對Repository兩種組織方式的理解,但具體哪一種設計更優雅,兩者的設計意圖和區別在哪???其實沒有定論。所以,也歡迎你發表一下自己的看法,歡迎拍磚。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM