zoukankan      html  css  js  c++  java
  • 探究Repository模式的两种写法与疑惑

    现如今DDD越来越流行,园子里漫天都是介绍关于它的文章。说到DDD就不能不提Repository模式了,有的地方也叫它仓储模式。

    很多时候我们对Repository都还停留在Copy然后使用的阶段, 我注意到Repository模式有两种流行的设计方式。

    今天我就是想跟大家讨论下这两种设计方式之间的区别,同时弄清楚哪种方式更合理(无需纠结代码细节),见下图:

    左右两边代码比较:

    1、左边的Repository代码在实际使用中是最常见的,右边的使用更少一些。

    2、左边代码的更难理解一些,右边的代码中规中矩,易于理解。

    3、左边代码使用了IUserRepository : IRepository<User>,选择的是接口的继承,将Repository中对Entity的操作抽象为通用的CRUD操作和Entity的特殊操作两部分,但整体看起来是先分开后合并为一体,而右边的则没有采用接口继承方式。

    上面是我个人对Repository两种组织方式的理解,但具体哪一种设计更优雅,两者的设计意图和区别在哪???其实没有定论。所以,也欢迎你发表一下自己的看法,欢迎拍砖。

  • 相关阅读:
    Python并发编程—自定义线程类
    Python并发编程—线程对象属性
    syfomny 好教材....
    drupal_get_css -- drupal
    common.inc drupal
    date iso 8610
    js很好的教材
    user_load_by_name
    eck add form
    把一个表导入到另一个地方...
  • 原文地址:https://www.cnblogs.com/huangzelin/p/4530950.html
Copyright © 2011-2022 走看看