數據加載中……

          2011年9月20日

          分享 - 小問題大道理

           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 @ 2011-09-20 12:45 目繪藝術2 閱讀(185) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 霍邱县| 平湖市| 平潭县| 陆川县| 土默特右旗| 青冈县| 河津市| 琼海市| 类乌齐县| 宽城| 横峰县| 清原| 黑山县| 衡东县| 镇坪县| 汪清县| 遂宁市| 皋兰县| 治多县| 上杭县| 太和县| 辉南县| 固阳县| 无为县| 横山县| 西安市| 镇江市| 铜陵市| 吉木萨尔县| 建德市| 天柱县| 会东县| 阆中市| 新巴尔虎左旗| 平定县| 封丘县| 沿河| 万安县| 勐海县| 张掖市| 昔阳县|