向对象编程的精髓在于将行为绑定在数据上。

 向对象编程的精髓在于将行为绑定在数据上。

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

多年以后我发现,面向对象编程的精髓在于将行为绑定在数据上。

就拿某种“装载程序模块”来说吧,重点在于它的工作单元。模块有许多实例变量,参数,也许还有很多到处传输的数据。

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

我有理由相信,你们最终使用的工具,更类似于面向对象编程创始人心中设想的模样。我们想要创造可以描述的对象,然后将某些行为绑定在它上面,而不是将焦点集中在它的行为上,然后弄清楚他们的行为需要哪些数据

某些以前学过的用er结尾的对象已经绝迹多年

管理者(Manager)——每当我遇到一位管理者时,我就会感到担忧。大家没有跟我说它的含义,却早早地告诉我它的职能。它是注册表吗?那就叫它注册表吧。是历史记录还是日志?就那样称呼吧。是工厂吗?就那样称呼吧。

控制器(Controller)——我在过去20年内只做过一个上等的控制器对象,它是一个象征着现实世界对象的BallastVoltageController接口。事实上,世界上每一个简单MVC的执行与控制器的不同作用本应告诉我们这个构想相当协调的事情。

组织者(Organizer以及许多类似的团体)——焦点在于他们的职能。这是一个用来说明让众多这种‘ers’对象转化为组织极其简单的不错例子。就把它们称为组织吧。现在我们来关注它们的内容。

分析器/渲染器/(Analyzer/Renderer)/等等——“劳动者”对象中定义清晰的例子。假设它们是用来分析/渲染/等等。

生成器/加载器/阅读器/编写器/(Builder/Loader/Reader/Writer/)等等——把焦点从被操控的对象身上挪开,它们自身往往承担着重大的责任。

这样一条路线规则也会有很多例外

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