數(shù)據(jù)加載中……
          分享 - 小問(wèn)題大道理
           1 public class Order {
           2     
           3     private String name;
           4     //
           5     private Set<OrderLine> orderLines = new HashSet<OrderLine>();
           6 
           7     public String getName() {
           8         return name;
           9     }
          10 
          11     public void setName(String name) {
          12         this.name = name;
          13     }
          14 
          15     /**
          16      * 因?yàn)檫@是一個(gè)domain對(duì)象,貫穿你整個(gè)項(xiàng)目,不知你是否在意過(guò)這樣的設(shè)計(jì)。
          17      * 這樣的設(shè)計(jì)對(duì)你是否有用呢?
          18      * 用戶:表示API調(diào)用者。 
          19      */
          20     
          21     public Set<OrderLine> getOrderLines() {
          22         /*
          23          * 1.防止用戶任意修改訂單行的內(nèi)容,強(qiáng)制要求用戶使用當(dāng)前類提供的API修改訂單行
          24          * 2.getOrderLines()絕對(duì)不為null,有可能getOrderLines().isEmpty()為true
          25          * 用在你的程序中不會(huì)出現(xiàn)if(getOrderLines() == null && getOrderLines().isEmpty()),
          26          * 只會(huì)出現(xiàn)if(getOrderLines().isEmpty())
          27          */
          28         return Collections.unmodifiableSet(orderLines);
          29     }
          30 
          31     //-----------------------提供API修改Order by OrderLine----------------------------//
          32     public void addOrderLine(OrderLine orderLine) {
          33         //
          34         orderLines.add(orderLine);
          35     }
          36 
          37     public void removeOrderLine(OrderLine orderLine) {
          38         // 
          39     }
          40     //-----------------------提供API修改Order by OrderLine----------------------------//
          41     
          42     public void setOrderLines(Set<OrderLine> orderLines) {
          43         // this.orderLines = orderLines;
          44         // 為什么沒(méi)有向上面來(lái)做,是因?yàn)槿绻沁@樣賦值的話那么兩個(gè)對(duì)象就是同一個(gè)引用了。
          45         // 用戶修改orderLines,this.orderLines也同樣會(huì)被修改。
          46         // 而提供這個(gè)類期望用戶通過(guò)該類提供的接口來(lái)修改orderLines。
          47         orderLines.addAll(orderLines);
          48     }
          49 
          50 }

          posted on 2011-09-20 12:45 目繪藝術(shù)2 閱讀(184) 評(píng)論(0)  編輯  收藏 所屬分類: Java基礎(chǔ)


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 大同市| 永福县| 静海县| 项城市| 光山县| 晋城| 始兴县| 建阳市| 千阳县| 石城县| 绥江县| 青阳县| 白水县| 莆田市| 上饶县| 梅河口市| 奉新县| 华安县| 阜阳市| 黑山县| 额济纳旗| 吉水县| 承德县| 石棉县| 大埔县| 江山市| 巧家县| 亳州市| 民乐县| 孟州市| 珲春市| 延长县| 宁海县| 渝北区| 永康市| 安义县| 桑植县| 铜川市| 射阳县| 太湖县| 吉水县|