正如罗伯特·马丁的清洁代码所说:
对象将其数据隐藏在抽象之后,并公开对该数据进行操作的函数。数据结构公开它们的数据,没有任何有意义的功能。
但他也提到:
过程代码(使用数据结构的代码)使得在不更改现有数据结构的情况下很容易添加新函数。另一方面,OO代码可以在不改变现有函数的情况下轻松地添加新类。
以及:
..。这样的混合使添加新功能变得困难,但也使添加新的数据结构变得困难。他们是两个世界中最糟糕的。避免创造它们。
上面的混合表示数据结构和对象之间的混合。
但是,数据结构似乎存在冲突:使用数据结构的优点是更容易地添加函数,但对于数据结构,我们最好不要在其中添加函数。那么拥有数据结构又有什么意义呢?例如,DTO(数据传输对象)是使用数据结构而不是使用对象的例子之一。而且它总是一个很好的实践,不要在它中添加大量的逻辑。--但是为什么?
发布于 2018-11-03 07:45:59
你误解了鲍勃叔叔说的话。
使用数据结构的优点是更容易地添加函数。
不,应该是:分离数据结构和函数的优点是为了更容易地添加函数。
当数据结构和函数分开时,您可以添加一个新函数而不破坏旧函数。相反,当数据结构和函数被绑定到OOP中的类这样的单元中时,添加一个新函数(方法)将打破所有旧的单元/类。
https://stackoverflow.com/questions/53128454
复制相似问题