C++編程規範之11:隱藏信息
摘要:
不要泄密,不要公開提供抽象的實體的內部信息。
為了盡量減少操作抽象的調用代碼和抽象的實現之間的依賴性,必須隱藏實現內部的數據。否則,調用代碼就能夠訪問該信息,或者更糟,操作該信息,而原來應屬於內部的信息就泄漏給了調用代碼所依賴的抽象。應該公開抽象,而不是數據。
信息隱藏主要從一下兩方麵降低了項目的成為,加快了項目的進度,減少了項目的風險。
1. 限製了變化的影響範圍。信息隱藏縮小了變化所引起的“連鎖反應”的範圍,也降低了由此帶來的成本。
2. 強化了不變式。它限製了負責維護程序不變式的代碼。
不要從任何提供抽象的實體中公開數據。數據隻是抽象、概念性狀態的一種可能的具體化而已。如果將注意力集中在概念而不是在其表示形式上,就能夠提供富於提示性的接口,並按需要對實現進行調整。
絕對不要將類的數據成員設為public,或者公開指向它們的指針或者句柄而使其公開,這是一個很常見的信息隱藏的例子。模塊和程序同樣應該提供定義抽象和其中信息流的接口,從而使與調用嗲嗎的通信比采用數據共享方式更安全,耦合度更低。
最後更新:2017-04-03 12:53:35