程序设计重点在于设计好的数据结构

本文探讨了面向数据结构的设计思想,以数据为中心进行设计,并以多边形三角剖分为例,展示如何通过简洁的设计解决复杂问题。避免面向对象设计的复杂性,提出了一种更高效的方法。

 1.面向数据结构的设计思想

设计程序,不再于使用什么面向对象思想。而在于设计通用且相对方便的数据结构。

计算机本质上处理的东西就是数据,而不是对象。


 面向数据结构的设计思想:以数据为中心,先确定客户端输入什么数据,需要输出什么数据,

然后设计数据结构,设计算法操作数据结构。

一个设计,重要的是解决问题,而不是在于使用什么设计思想(OO)


2.实例:多边形三角剖分算法

多边形种类:

(1)简单多边形,定义:各边不自交,边为直边,中间无洞

(2)带洞多边形,定义:带洞口的简单多边形

采用面向对象思想设计


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


此设计需要三个类,二个继承关系,一个包含关系。

面向对象的弊端在于准确定义对象。如上面的关系,洞口是多边形什么?带洞多边形是简单多边形么?

这种问题是不易回答的。凭空多了这么多关系。


采用面向数据结构的设计思想


这种设计没有继承关系,没有组合关系。只需要一个类。和一个约定:当next0说明是简单多边形。

next不为0,说明是带洞多边形。简洁的设计胜于花哨的设计。

“当手里只有锤子,看什么都像钉子。”当我们之会面向对象设计时,看什么都是类都是对象。

可是别忘了。还有其它的设计方法。

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值