<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    老妖的博客
    現實的中沒有幾個人能夠真為對方去死,甚至山盟海誓很快就會在金錢面前變的微不足道,這才是生活。沒有永遠的愛,除了你的父母對你,當然也就沒有永遠的恨,更沒有永遠的痛,時間是最好的治療大師,它會很快撫平你心靈上累累的傷痕。很多年以后你想起來時,那些在你生命中洶涌來往的人群至多是個模糊的影子或者毫無意義的名字
    posts - 105,  comments - 171,  trackbacks - 0

    在entity Domain Object 中存在一個父類,要實現一個getSum方法,用來過濾出大多數的子類,然后將剩余對象的某個字段相加并且返回其總和。
    那么除了將所有子類都load進內存(在父類的一個Collection中)再繼續過濾,我想會有更好的方法來優化。我在DAO建立了一個方法用來發送Query給Database,進行過濾和計算總和。
    出于分層的目的,我不想讓外部調用的時候直接訪問DAO,而應該在其他層來調用getsum。我的問題就是到底應該在那層來調用getsum方法?到底是在entity Domain Object中還是在Service中?

     1class MyParentEntity
     2{
     3  private MyDao dao;
     4  
     5  public void setDao(MyDao dao)
     6  {
     7    this.dao = dao;
     8  }

     9
    10  public int getSum(FilteringParams params)
    11  {
    12    return dao.getSum(params, this);
    13  }
       
    14
    15  // other operations
    16}
    或者
     1class MyServiceImpl implements MyService
     2{
     3  private MyDao dao;
     4  
     5  public void setDao(MyDao dao)
     6  {
     7    this.dao = dao;
     8  }

     9
    10  public int getSum(FilteringParams params, MyParentEntity parentEntity)
    11  {
    12    return dao.getSum(params, parentEntity);
    13  }
       
    14
    15  // other operations
    16}
    在第一個例子中,客戶端將直接調用MyParentEntity.getSum().在第二個例子中客戶端將使用MyService.getSum()來取代,使用MyParentEntity一個實例來作為參數。
    把getSum放入MyParentEntity看起來回比較合適,畢竟它包含了一個MyParentEntity的Instance,但另一方面來看它同時也調用了DAO中的方法


    -----------------reply--------------------
    基本的問題是你是否認為將Domain object Loader(你的Dao)作為domain object的一部分,但我并不是這么想的。
    DAO本身也是一個Service,因此我想它不應當存在在Domain object.
    Domain Object 并不是貧血的,因為它需要collaborators,它通過在Runtime時Collaborator.
    因此你應該這樣做:
    public int getSum(ChildEntityLocatorStrategy, FilteringParams)
    ChildEntityLocatorStrategy 是一個用來搜索相關的entities的接口。當然DAOChildEntityLocatorStrategy會簡單的調用dao.getSum(params, parent).
    ----------------------reply-----------
    謝謝你的評論,剛剛修改如下:
     1class MyParentEntity
     2{
     3  public int getSum(ChildEntityLocatorStrategy childLocator, FilteringParams params)
     4  {
     5    childLocator.getSum(params, this);
     6  }

     7
     8  // other operations
     9}

    10
    11interface ChildEntityLocatorStrategy
    12{
    13  public int getSum(FilteringParams params, MyParentEntity parentEntity);
    14}

    15
    16class DAOChildEntityLocatorStrategy implements ChildEntityLocatorStrategy
    17{
    18  private MyDao dao;
    19 
    20  public void setDao(MyDao dao)
    21  {
    22    this.dao = dao;
    23  }

    24
    25  public int getSum(FilteringParams params, MyParentEntity parentEntity)
    26  {
    27    return dao.getSum(params, parentEntity);
    28  }
       
    29
    30  // other operations
    31}
    --------reply----------------
    http://thread.gmane.org/gmane.comp.java.springframework.user/3402

    http://thread.gmane.org/gmane.comp.java.springframework.user/3513

    ----------reply---------------
    http://www.digizenstudio.com/blog/2005/06/07/inject-into-domain-objects/
    posted on 2005-11-01 09:53 老妖 閱讀(605) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    <2005年11月>
    303112345
    6789101112
    13141516171819
    20212223242526
    27282930123
    45678910

    常用鏈接

    隨筆分類(48)

    隨筆檔案(104)

    好友鏈接

    我的豆瓣

    積分與排名

    • 積分 - 220902
    • 排名 - 257

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 日本免费一本天堂在线| 免费a级毛片无码a∨免费软件 | 免费黄色毛片视频| 一二三四免费观看在线视频中文版| 在线免费观看国产| 四虎成年永久免费网站| 免费看h片的网站| 永久免费av无码不卡在线观看| 一二三四免费观看在线电影| 久久电影网午夜鲁丝片免费| 女人18毛片特级一级免费视频| 午夜视频在线观看免费完整版| 日韩免费一区二区三区| 亚洲av午夜成人片精品电影| 亚洲综合亚洲综合网成人| 日韩一卡2卡3卡4卡新区亚洲| 国产亚洲综合网曝门系列| 亚洲成人精品久久| 亚洲国产精品综合久久久| 学生妹亚洲一区二区| 亚洲国产成人精品无码区花野真一 | 国产高清在线精品免费软件| 国产hs免费高清在线观看| 亚洲精品色婷婷在线影院| 亚洲乱码精品久久久久..| 久久亚洲日韩精品一区二区三区| 亚洲理论片在线中文字幕| 亚洲三级高清免费| 色噜噜狠狠色综合免费视频| 精品久久久久久无码免费| 98精品全国免费观看视频| 欧美男同gv免费网站观看 | 一区二区免费视频| 在线观看免费毛片| 精品国产香蕉伊思人在线在线亚洲一区二区 | 精品久久久久久久久免费影院| 好男人视频社区精品免费| 亚洲日韩VA无码中文字幕| 亚洲AV永久纯肉无码精品动漫| 亚洲人成影院77777| 国产亚洲女在线线精品|