标题的意思是,对象之所以单独成为一个概念,而不是只是系统内部的实现细节,那是因为很多人需要调用它。
因此,对象的存在是因为被需要,如果没有人调用它,他就可以作为实现细节,从外观上消失。
比如一个超市的管理系统,为什么要有商品,为什么要有收银员,是因为老板需要经常查看这些信息,所以他成为一个独立的概念,是有意义的。
现实需求中,有很多实体对象,如果要一花一木都描述出来,那么就非常辛苦。有些人害怕自己不够面向对象,就迷恋不断的创建概念对象出来,这样会很累。如果你觉得自己很懒,觉得没必要对外开放一个独立的概念,就可以作为一个实现细节。虽然只有一个对象,而没有对象联系的系统是不可思议的,但是从理论角度,这也是面向对象,没必要说一定要很多对象,复杂的交互才是面向对象。
对于一个系统来说,设计复杂的对象关系是一件很辛苦的事情,有时候比实现细节还要麻烦,细节大不了你不爽了就改一改,这个在原型开发的时候也是很容易的,但是对象关系,如果不仔细调整,他成为外部概念后,就对整个系统,乃至将来的设计产生深远的影响,要知道一个错误的设计,比一个没有设计更加烦人。
对于原型开发来说,我认为除非你已经很了解业务,否则还是尽量先做好业务的算法,把整个系统了解一下,再来慢慢思考怎样的设计布局更加合理,更具扩展性。设计中的对象,并不一定等价于现实中的对象,现实中的对象你是按照重要性来排序的,而程序中的对象,你是按照他对其他对象的依赖性质来排序的,和系统其他对象越紧密的对象,越重要。现实生活中老板是你第一个要服侍好的对象,但是程序中可能就是收银机,因为顾客,收银员,商品都和他勾搭上了。我的意思是,生活中很重要的一些对象,在程序中也许只是一个字段就能表示的简单概念。
一些简单的想法,泛泛而谈。请大家有空留言一下。