罗伯特·马丁(Robert Martin)的Clean Code说:
对象隐藏 它们的数据在抽象之后隐藏,并公开对该数据进行操作的函数。数据结构 公开他们的数据,没有任何有意义的功能。
但是他也提到了:
过程代码(使用数据结构的代码)可轻松添加新功能,而无需 更改现有数据结构。另一方面,OO代码使添加操作变得容易 新类而不更改现有功能。
和:
... 这样的混合体很难添加新功能,但是也很难添加新数据 结构。他们是两全其美的。避免创建它们。
上面的混合表示数据结构和对象之间的混合。
但是似乎数据结构存在冲突:使用数据结构的优点是使函数添加起来更容易,但是对于数据结构,我们最好不要在其中添加函数。那么拥有数据结构的意义何在?例如。 DTO(数据传输对象)是使用数据结构而不使用对象的示例之一。最好不要在吸气剂中添加很多逻辑,这始终是一个好习惯。 -为什么?
答案 0 :(得分:0)
你误会了鲍伯叔叔的话。
使用数据结构的优点是可以更轻松地添加功能
否,应该是:分离数据结构和函数的优点是使函数添加更加容易。
当数据结构和函数分开时,您可以添加新函数而不会破坏旧函数。相反,当将数据结构和函数捆绑到OOP中的类之类的单元中时,添加新的函数(方法)会破坏所有旧的单元/类。