天天看點

《你必須知道的.net》讀書筆記 003 —— 1.3 封裝的秘密

    好了繼續,封裝是一個簡單的、基礎的,沒什麼好說的,但是又說不明白的東東。沒有源碼就是封裝起來了,有了源碼就不是封裝了,因為可以打開來随意修改了。呵呵,開個玩笑先。

    字段、屬性。

    原來對于屬性的看法是,如果要用屬性而不用public的字段的話,需要兩個條件:一是寫自定義控件,目的是在屬性視窗裡可以檢視屬性,直接指派;一是在屬性裡面做判斷,比如age屬性的set{}裡面,可以判斷一下,在 0到150才是有效地,超出了就視為無效。如果既不做判斷,又不是自定義控件的屬性的話,那麼是不是可以直接使用public的字段呢?

    我覺得是可以的。呵呵。

    我覺得類的最大的功勞是對函數的管理,其實屬性也是一種函數,接口也是函數,類就是把相關的函數集中在一起,以便于“減少”關注的數量。比如指揮官指揮作戰的時候,關注的是有幾個軍,幾個師,而不是每一個士兵。

    封裝要保證:

    1、隐藏系統實作的細節,保證系統的安全性和可靠性。

    2、提供穩定的對外接口。是以,系統中相對穩定部分常被抽象成接口。

    3、封裝保證了代碼子產品化,提高了軟體的複用和功能分離。

-----------

對于2和3不太了解,2裡面,應該把變化的部分抽象成接口吧,就像政策模式裡的那樣?也許是筆誤?

3子產品化是面向過程的特點吧?給面向過程留一點呀,“提高”倒是挺準确,原來就有了,現在提高一步。

-----------

    封裝規則

    1、盡量調用類的通路器,而不是成員。

    2、内部可以改,但是接口就不要變了。(不是書中的原文)

    3、将對字段的讀寫控制實作為屬性,而不是方法。

    4、

    5、

    結論

    封裝就是一個包裝,将包裝的内外分為兩個空間,對内部實作資料私有,對外實作方法調用,保證了資料的完整性和安全性。