由判定树想到的软件设计道理(2008-09-03 13:38)

在Kicknote项目中多次用到了判定树来分析复杂的逻缉判断,但在把判定树转化为代码时,我发现代码并不需要和判定树的判断过程保持一致,具体说就是当判定树的叶子结点的处理方法相同时,则可以在代码中归并到一个地方处理,而在判定树中是分别考虑的。

这使我想到,在问题的不同层次,问题的表现形式是可以不同的。在画出判定树的时候并不会考虑实现,目的就是把所有的情况搞情楚,而在实现时判定逻辑已经清楚了,就可以以最简的形式加以实现。

由此我想到,需求和设计的关系、设计和实现的关系也是类似的。它们之间都是一种转换关系。即然是转换关系,转换本身就是一种学问,不同的转换方法导致了不同的实现。转换的结果可以和原来的内容很象,也可以不象,只要最终的逻辑是等效的。

因此为了得到好的转换结果,不可拘泥于现有的束缚(比如:框架中没有明确的支持)要勇于创新,在软件的创造性设计中可以用一句话概括:“水无常形,兵无定法”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值