天天看點

《C++面向對象高效程式設計(第2版)》——2.7 資料封裝注意事項

本節書摘來自異步社群出版社《c++面向對象高效程式設計(第2版)》一書中的第章,第2.7節,作者: 【美】kayshav dattatri,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

c++面向對象高效程式設計(第2版)

盡管封裝的資訊對于使用者而言無關緊要,然而,為了高效地使用對象,使用者可能也需要通路封裝的資訊。實作者封裝某些元素後,必須在接口提供通路或操控封裝資訊的工具。盡管這些通路是受限或受控的,但仍然要給接口提供适當的工具用于通路和修改封裝的實體。如果抽象封裝了一部分對使用者很重要的資訊,卻未提供合适的工具來通路被封裝的資訊,這樣的抽象是不正确的(即接口不足)。

回到ld播放機的例子。啟動和停止馬達的裝置确實被封裝在ld播放機中,播放機隻有在确定裝入碟片并關閉碟片托盤後才會啟動馬達。但是,如果使用者想更換碟片,也可随時要求播放機停止馬達運轉。當使用者按下open/close按鈕時,影碟播放機将關閉馬達,并彈出碟片托盤。由此可見,即使馬達控制裝置被封裝,接口也提供了必需的控件來操控馬達,盡管是間接地操控。

繼續閱讀