天天看點

《C++面向對象高效程式設計(第2版)》——2.2 對象接口的重要性

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

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

資料抽象的目的是,提供清晰和充足的接口,在友善且受控的模式下允許使用者通路底層實作。接口應滿足使用者使用對象的基本需求。我們的唯一目标是:牢記客戶,為讓她們的生活更加舒适而不懈努力。是以,抽象的首要目标是,為客戶簡化操作。

僅為讨論需要,假定我們設計的ld播放機未提供stop按鈕,會怎樣?它将永遠播放一張碟片!隻有切斷電源才能讓播放機停止播放。可見,沒有stop按鈕的接口不足以滿足使用者的基本要求。大多數情況下,如果現有接口無法滿足使用者需求,使用者都傾向于繞過所有的安全和保護,直接幹擾内部運作。設計良好的接口不應該出現這樣的問題。當且僅當接口能滿足使用者需求時,該抽象才是設計良好的抽象。

同理,如果我們的設計未提供search按鈕,這樣的接口也不充足。ld播放機的使用者,有權播放碟片中任意標明部分的圖像。要求使用者隻能按照從頭到尾的順序觀看完全不合理。

繼續閱讀