面向对象技术模型:假设我想送花给我远在外地的女友,由于distance太远的原因,我不可能亲自送去给mm,虽然我很想。但是送她花还是一件相当easy的事,我只要在本地的花店给他们描述我mm的详细地址,花的品种,数量,何时送到等具体细节。就可以委托我mm在的那个城市的连锁花店,把花送到我mm的手中。
这和面向对象有什么关系那,我来解释。
我门送花的过程可以分为一下几种代理。(因为不能用图形来表示,所以只能用链式的关系表示)
路径1 :我-花店-送给mm的花。
2 :mm所在城市的花店-送花人-送给mm的花
3 :mm城市的花商-送给mm的花
4:种植园-园丁-批发商-花商-送花人-送给mm的花
我们都可以通过以上的4肿方法。达到我们的目的。但是我们不会去关心花商是怎么样来具体实现的,花商可以打电话,或者传真给mm所在城市花店的连锁店,然后连锁店,通过我的订单的要求,通过种植圆,选到最新鲜的花,然后通过送花人,送到我mm的手里。 这个我们不去关心具体如何实现的过程就是信息隐藏我们只关心只要把花送到mm手里就行了,这就是隐藏实施。
对于程序也和我送mm花这过程一样。一个面向对象的程序是由一个相互作用的代理团体组成,也就是以上的花商,送花人,种植圆之类的。而这些就是对象。每个对象有他自己的角色,每个对象都提供一种服务,一种动作。
类层次关系的顿悟:
以上模型中的具体对象,例如花商,可分为本地的花商和mm所在城市的花商,但是他们都是花商,还有比如本地花商的老板,和mm所在城市的花商的老板。他们都是花商的老板,他们都是一个类。这里而老板的父类是人,人类的父类又是哺乳类动物,而哺乳类动物又属于动物,而动物最终属于我们的Object类。我们都是对象,阿猫阿狗也是对象。我你他都是面向对象的。
类的继承关系是:花店花童-花店老板-店主-人类-哺乳动物-动物-object
从中可以发现我们继承了从祖宗到目前个体的所有特性,比如动物有object的属性。他可能有4条腿,而哺乳类动物又继承了动物的属性,而又有自己的属性,因为他是哺乳的。而人继承了哺乳类动物的属性,又有了自己的特性,说话,行走之类。店主也继承了人的特性,而且他有自己的属性,他有店主的权利,因为店是他的,而老板那继承了店主的某些属性,比如权利,但是他还是店主的打工仔。而花童只有自己的属性。但是也是继承了最基本的object的属性,这中一层一层的继承属性,我觉得很清楚的说明了java类的继承关系。
以上就是我今天顿悟的东东,写出来希望对大家能有些帮助。