第六章讨论的是对象和数据结构,读完之后的感觉是虽然我们天天都嚷着吼着要面向对象编程,但是很多时候我们都使用了类的退化结构,包括我们开发时经常使用的失血模型和贫血模型(事务脚本模式)都和面向对象的设计理念相违背。我得承认在读这一章的时候我可能没有抓住作者的观点。
1、数据抽象
要以最好的方式呈现某个对象包含的数据,做严肃的思考,不要乱加赋值器和取值器,这是最坏的选择。
2、数据、对象的反对称性
在任何一个复杂系统中,都会有需要添加新数据类型而不是新函数的时候。这时,对象和面向对象就比较适合。另一方面,也会有想要添加新函数而不是数据类型的时候。在这种情况下,过程式代码和数据结构更合适。
3、得墨忒耳律
更准确地说,得墨忒耳律认为,类C的方法f只应该调用以下对象的方法:
由f创建的对象;
作为参数传递给f的对象;
由C的实体变量持有的对象。
4、数据传送对象
最为精练的数据结构,是一个只有公共变量、没有函数的类。这种数据结构有时被称数据传送对象,或DTO(Data Transfer Objects)。DTO是非常有用的结构,尤其是在与数库通信、或解析套接字传递的消息之类场景中。在应用程序代码里一系列将原始数据转换数据库的翻译过程中,它们往往是排头兵。