數據加載中……
          分享 - 小問題大道理
           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      * 因為這是一個domain對象,貫穿你整個項目,不知你是否在意過這樣的設計。
          17      * 這樣的設計對你是否有用呢?
          18      * 用戶:表示API調用者。 
          19      */
          20     
          21     public Set<OrderLine> getOrderLines() {
          22         /*
          23          * 1.防止用戶任意修改訂單行的內容,強制要求用戶使用當前類提供的API修改訂單行
          24          * 2.getOrderLines()絕對不為null,有可能getOrderLines().isEmpty()為true
          25          * 用在你的程序中不會出現if(getOrderLines() == null && getOrderLines().isEmpty()),
          26          * 只會出現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         // 為什么沒有向上面來做,是因為如果是這樣賦值的話那么兩個對象就是同一個引用了。
          45         // 用戶修改orderLines,this.orderLines也同樣會被修改。
          46         // 而提供這個類期望用戶通過該類提供的接口來修改orderLines。
          47         orderLines.addAll(orderLines);
          48     }
          49 
          50 }

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


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


          網站導航:
           
          主站蜘蛛池模板: 绥化市| 阿巴嘎旗| 大竹县| 汉川市| 沁水县| 五家渠市| 富宁县| 当涂县| 榕江县| 陵水| 乌苏市| 文安县| 夏河县| 彭水| 洛隆县| 隆昌县| 隆安县| 天等县| 商河县| 台南市| 聂荣县| 拜泉县| 若尔盖县| 珠海市| 内丘县| 德庆县| 延庆县| 毕节市| 保定市| 青州市| 永胜县| 临西县| 瑞安市| 信阳市| 城固县| 合作市| 噶尔县| 玉林市| 定边县| 巫溪县| 佛冈县|