1.面向数据结构的设计思想
设计程序,不再于使用什么面向对象思想。而在于设计通用且相对方便的数据结构。
计算机本质上处理的东西就是数据,而不是对象。
面向数据结构的设计思想:以数据为中心,先确定客户端输入什么数据,需要输出什么数据,
然后设计数据结构,设计算法操作数据结构。
一个设计,重要的是解决问题,而不是在于使用什么设计思想(如OO)。
2.实例:多边形三角剖分算法
多边形种类:
(1)简单多边形,定义:各边不自交,边为直边,中间无洞
(2)带洞多边形,定义:带洞口的简单多边形
采用面向对象思想设计

洞口和简单多边形的功能差不同,名称不同。如果要复用简单多边形代码,则需要这样设计。

此设计需要三个类,二个继承关系,一个包含关系。
面向对象的弊端在于准确定义对象。如上面的关系,洞口是多边形什么?带洞多边形是简单多边形么?
这种问题是不易回答的。凭空多了这么多关系。
采用面向数据结构的设计思想

这种设计没有继承关系,没有组合关系。只需要一个类。和一个约定:当next为0说明是简单多边形。
当next不为0,说明是带洞多边形。简洁的设计胜于花哨的设计。
“当手里只有锤子,看什么都像钉子。”当我们之会面向对象设计时,看什么都是类都是对象。
可是别忘了。还有其它的设计方法。
本文探讨了面向数据结构的设计思想,以数据为中心进行设计,并以多边形三角剖分为例,展示如何通过简洁的设计解决复杂问题。避免面向对象设计的复杂性,提出了一种更高效的方法。
1万+

被折叠的 条评论
为什么被折叠?



