天天看點

C++程式設計規範之11:隐藏資訊

摘要:

    不要洩密,不要公開提供抽象的實體的内部資訊。

    為了盡量減少操作抽象的調用代碼和抽象的實作之間的依賴性,必須隐藏實作内部的資料。否則,調用代碼就能夠通路該資訊,或者更糟,操作該資訊,而原來應屬于内部的資訊就洩漏給了調用代碼所依賴的抽象。應該公開抽象,而不是資料。

    資訊隐藏主要從一下兩方面降低了項目的成為,加快了項目的進度,減少了項目的風險。

1.      限制了變化的影響範圍。資訊隐藏縮小了變化所引起的“連鎖反應”的範圍,也降低了由此帶來的成本。 2.      強化了不變式。它限制了負責維護程式不變式的代碼。

    不要從任何提供抽象的實體中公開資料。資料隻是抽象、概念性狀态的一種可能的具體化而已。如果将注意力集中在概念而不是在其表示形式上,就能夠提供富于提示性的接口,并按需要對實作進行調整。

    絕對不要将類的資料成員設為public,或者公開指向它們的指針或者句柄而使其公開,這是一個很常見的資訊隐藏的例子。子產品和程式同樣應該提供定義抽象和其中資訊流的接口,進而使與調用嗲嗎的通信比采用資料共享方式更安全,耦合度更低。

繼續閱讀