6.1 数据抽象
反过来讲也说得通:
过程式代码 难以添加新数据结构,因为必须修改所有函数(函数里考虑新增加的数据结构) 面向对象 代码难以添加新函数,因为必须修改所有类(要在每个类添加新函数)
所以,对于面向对象较难的事,对于过程式代码却较容易,反之亦然!
在任何一个复杂系统中,都会有需要添加新数据类型而不是新函数的时候。这时,对象
和面向对象就比较适合。另一方面,也会有想要添加新函数而不是数据类型的时候。在这种
情况下,过程式代码和数据结构更合适。
6.3 得墨忒耳律
方法不应调用由任何函数返回的对象的方法。(那个方法是那个对象所有的)。只跟朋友谈话,不跟陌生人谈话。
// 错误示范
final String outputDir = ctxt.getOptions().getScratchOptions.getAbsolutePath();
对象
:公共函数,私有变量,适用于德墨忒尔律数据结构
:公共变量,没有函数
6.4 数据传送对象
DTO
只有公共变量,没有函数的类。
与数据库通信,解析套接字传递的消息之类场景。豆结构
拥有由赋值器和取值器操作的私有变量(save, find等浏览方法)。