談物件導向的封裝

來源:互聯網
上載者:User

封裝是物件導向最重要的特徵之一,封裝就是指隱藏。

之前教科書上的內容關於封裝只是認為隱藏了資料和方法,很少有人提到隱藏了具體實現,而這點在《Java編程思想》這本書籍裡,被稱為被隱藏的實現,而在《設計模式精解》裡,封裝的概念包含了實現的隱藏。


我們這裡歸納下,看看到底封裝可以做些什麼:

  • 對象隱藏了資料(例如Java語言的private屬性),避免了其他對象可以直接使用對象屬性而造成程式之間的過度依賴,也可以阻止其他對象隨意修改對象內部資料而引起對象狀態的不一致。
  • 對象隱藏了實現細節。
  1. 使用者只能使用公有的方法而不能使用那些受保護的或者私人的方法,你可以隨意修改這些非公有的方法而不會影響使用者;
  2.  可以隱藏具體類型,使用者不必知道對象真正的類型就可以使用它們(依賴於介面和抽象帶來的好處);
  3. 使用者不需要知道與被使用者有關而與使用者無關的那些對象或者變數,減少了耦合。

由於只能通過公用介面和方法使用它們,客戶程式就不能使用那些受保護的方法(例如Java語言裡的private方法和protected方法),而你可以隨意修改這些方法,並不會影響使用者,從而降低了耦合度。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.