Refactoring–Encapsulate Collection(封裝自己的業務集合對象)

來源:互聯網
上載者:User
代碼

    /// <summary>
    /// 訂單類,訂單類用list集合對象來裝載,
    /// 對於訂單類的相關集合操作並非和集合對象一致,對相應的集合操作進行封裝,將集合的操作對客戶程式不可見,避免客戶程式直接操作集合對象導致相關錯誤。
    /// 如此處的增加,需要更新訂單數量的值,不讓客戶程式直接對list操作。
    /// </summary>
    public class Order
    {
        private List<OrderLine> _orderLines;
        private int _orderTotal;

        public IEnumerable<OrderLine> OrderLines
        {
            get { return _orderLines; }
        }
        
        public int OrderTotal
        {
            get{return _orderTotal;}
        }

        public void AddOrderLine(OrderLine orderLine)
        {
            _orderTotal += orderLine.Total;
            _orderLines.Add(orderLine);
        }

        public void RemoveOrderLine(OrderLine orderLine)
        {
            orderLine = _orderLines.Find(o => o == orderLine);
            if (orderLine == null) return;
        
            _orderTotal -= orderLine.Total;
            _orderLines.Remove(orderLine);
        }
  }

 

對集合對象的操作進行封裝,保證商務邏輯和 集合操作的一致性,避免客戶程式直接操作調用集合類的操作。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.