你真的应该懂面向对象

1.-面向对象和基于对象的分别

所谓基于对象,就是用对象,能封装对象,把状态和操作包装起来使用.但是不能通过多态扩展对象.

面向对象是附加多态功能的"基于对象".

2.面向对象和面向过程的分别.

最本质的差异是关注的侧重点不同.面向对象关注活动中的对象,面向过程关注活动中的流程.从根本上来说,两种思想会共存和相互渗透.

3.面向对象的基本设计思想

a.自己管好自己

b.自己管得过多,就委派给别人

c.不侵犯别人的领地

d.不依赖特定的对象,不猜测对方的实现机制

高级议题,面向对象的各种常见观念:

1.面向对象的原教旨

它认为对象之所以存在,因为他客观存在.

比如什么猫,狗,飞机之类的.

但是我认为对象并不客观存在,而在于你主观的设计如何.比如同学继承于人类之类的,或者班级由学生组成之类的,可以存在,也可以不存在,在于你主观的设计,并不存在一种恰如其分,因为存在所以存在的必然性.

你可以设计一个飞猫,比狗还大的猫,只要你喜欢.

原教旨给我们的财富是,建立易于理解的概念.

2.设计模式是有害的

设计模式是一种招式,很华丽的招式.招式应该服从于设计理念,而不是将你的设计改造成这些招式.

3.面向对象为什么是可行的设计

面向对象最重要的设计能力在于哪些,主要有如下:

a. 将修改集中, 多态是最有力的工具.因此,在对象之间应该用多态的模式关联起来,而不是把代码写死.

b.封装减少无益的暴露.减少依赖,关联越多,修改的几率越高,对将来的改动越困难.

c.面向对象并不阻止修改,反而,面向对象更加欢迎修改,更易于修改,正是这种强大的进化能力,让程序可以适应需求的不断发展.当然,要用恰当的方式去修改.

d.用替换法去修改程序: 先建立一个新的对象,然后替换系统原有的对象,而不要直接去修改原有的对象.原因有两个,一,你旧有的对象对旧系统是有效的.二.你新对象是不成熟的.

posted @ 2011-05-11 14:52  诺贝尔  阅读(454)  评论(0编辑  收藏  举报