知识卡片
数据结构与算法分离带来的三个问题
内容
“数据结构 + 算法 = 程序”概括了结构化范式的特点:数据结构与算法分离、算法操作数据结构。这一分离会导致三类问题:①无法直观说明算法与数据结构的关系——数据结构变化时散落各处的算法都要改;②无法限制数据结构可被操作的范围——任何算法都能操作任何数据结构,一次错误操作即可致崩溃;③操作数据结构的算法被重复定义——重复并非人为,而是封装性不足的必然结果。面向对象把数据与算法封装在一起(数据即属性、算法即方法),使关系清晰、变化被隔离。发散:出现“同一数据的处理逻辑到处复制”时,往往不是纪律问题,而是封装边界缺失的信号。
参考来源
- 位置:《解构领域驱动设计》附录A A.1.2(源文件:_epub-src/OEBPS/034.xhtml)
- 结论依据:原文以沃斯公式引出结构化范式特征,并列出数据结构与算法分离导致的三个问题。
- 原始内容:数据结构与算法分离,算法用来操作数据结构。这一设计思想会导致以下几个问题。·无法直观说明算法与数据结构之间的关系……·无法限制数据结构可被操作的范围……·操作数据结构的算法被重复定义……