智能领域对象设计
我们重新审视的以下JAVA的Object的对象,其中包含了两个特殊的方法,equals和clone,从这两个方法我们可以看出,在面向对象的程序设计中,对象的设计不能紧紧参考其所描述的对象,而不是不可添加其他便于对象活动的行为的。为什么会有这样的结论,equals的判断两个对象是否相同,这种对象与对象之间相同与否的问题,是只有具备智能的动物或者智能机器人才有的能力做这样的结论,大多数的对象是没有此能力的,clone就不必说了。故做对象设计不必严格遵守现实,现在大家在写程序的时候经常创建的javabean,只有setter和getter,也是一种无活力对象,只具备传递数据的能力,而且要配合对应的service方法才完成工作,service类就是一个方法集,严格来讲不是面向对象编程。
我们不必在意是否遵守了面向对象的设计方法,能提高生产力的方法,就是好方法。我尝试了一种新的设计方法,看是否可以提高生产力,大家不妨看看。
第一,Object对象已经具备equals和clone了这样的智能方法了,我们不妨再让这个object聪明点,给他提供记忆联想功能。接下来的两点详细说明。
第二,很多对象是需要存储的,对象储取能力不需要外部提供,而是继承提供存取能力的对象,这就好像说,你家养的狗狗可以自己到宠物管理机构登记和变更它自己的信息了(听着都轻松),不用那么现实。
第三,世界上任何对象都不是孤立存在,而是相互影响的,存在因果关系的,一种原因能产生什么样的结果,有些是一定的,有的却不一定,对象之间的关联,有些情况是联系紧密的、有些是疏散的,对象具备自己的关系网络。如你目睹一起三车相撞的交通事故,其中一人的腿的伤势给你印象深刻,以后任何人提起腿受伤,你都会想起那个人,接着想起亲眼目睹那次事故,你还可以想到这起事故具体是如何发生的,即有点到面,有面到体,逐步深入。下面是我的一个对象设计(源代码https://sourceforge.net/projects/thinery/files/try.zip/download
):
|