向對象編程的精髓在於將行爲綁定在數據上。

 向對象編程的精髓在於將行爲綁定在數據上。

Russ提供的一句金玉良言:“不要使用‘er’結尾的對象。”

多年以後我發現,面向對象編程的精髓在於將行爲綁定在數據上。

就拿某種“裝載程序模塊”來說吧,重點在於它的工作單元。模塊有許多實例變量,參數,也許還有很多到處傳輸的數據。

如今,取而代之的是LoadRecord和LoadStream。

我有理由相信,你們最終使用的工具,更類似於面向對象編程創始人心中設想的模樣。我們想要創造可以描述的對象,然後將某些行爲綁定在它上面,而不是將焦點集中在它的行爲上,然後弄清楚他們的行爲需要哪些數據

某些以前學過的用er結尾的對象已經絕跡多年

管理者(Manager)——每當我遇到一位管理者時,我就會感到擔憂。大家沒有跟我說它的含義,卻早早地告訴我它的職能。它是註冊表嗎?那就叫它註冊表吧。是歷史記錄還是日誌?就那樣稱呼吧。是工廠嗎?就那樣稱呼吧。

控制器(Controller)——我在過去20年內只做過一個上等的控制器對象,它是一個象徵着現實世界對象的BallastVoltageController接口。事實上,世界上每一個簡單MVC的執行與控制器的不同作用本應告訴我們這個構想相當協調的事情。

組織者(Organizer以及許多類似的團體)——焦點在於他們的職能。這是一個用來說明讓衆多這種‘ers’對象轉化爲組織極其簡單的不錯例子。就把它們稱爲組織吧。現在我們來關注它們的內容。

分析器/渲染器/(Analyzer/Renderer)/等等——“勞動者”對象中定義清晰的例子。假設它們是用來分析/渲染/等等。

生成器/加載器/閱讀器/編寫器/(Builder/Loader/Reader/Writer/)等等——把焦點從被操控的對象身上挪開,它們自身往往承擔着重大的責任。

這樣一條路線規則也會有很多例外

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章