代码改变世界

突然发现一篇很受用的帖子~面向行为

2007-08-01 10:04  土星的狗狗  阅读(2685)  评论(17编辑  收藏  举报
http://www.cnblogs.com/zengezenge/archive/2007/07/31/837860.html
引用:我们一直以来都从“Is A”的角度来对对象进行归类,但是仔细的想一想,“Is A”的标准是什么?我们怎么样才能判定一个对象“Is A”另外一个对象呢?大家是不是基本靠猜测或者凭经验在做?这也是软件设计一直被当作是一种艺术行为的原因。

        是啊,这个IS A到底是指的什么,我们为什么没有想到ACT FROM A。
        从开始接触面向对象到现在,真正用到它的地方并不多,而只是把它当做一个理念在推广,朋友曾经说过一句话:你这样太累了吧,全部面向对象设计不现实。其实不是不现实,而是我们没有充分理解这种理念,而导致现在很累。

        抽象出来一个类,抽象出来一个方法,实现一个接口并不能说明就在使用面向对象,如果这种实现让本来很简单就可以完成的工作变得异常复杂,还是不用的好。一个好的设计是从一个基类开始的,就像.NET,OBJECT是一个多么好的抽象。
        我长期从事财务系统的开发,其它从这里面也能看出很多可以抽象的单位,比如:报表这个单位就可以做为一个总的基类,他可以抽象出取数,布局,打印,预览,导出接口四个部分,在不同的模块里可以有不同的实现,而现在我经历的系统中都没有这些,具体业务具体实现。
        我只是举一个例子,也许里面有说的不对的地方请大家指教。
        其实在我接触到的这些模块里面,有一个给我感触很深,那就是凭证模块,其实这个模块最可以用面向对象的理念去实现了,可以抽象的东西很多,接口也很多,其中方法属性又是异常的复杂,如果可以合理的设计真的可以达到事倍功半的效果,有这方面经验的朋友一起讨论一下吧~
Creative Commons License
It's my life