Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18672944
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-05-25 22:05:30

(同步自http://www.blogjava.net/AndersLin/archive/2006/05/31/49142.html)
面向对象,嗯,是个老话题了。
书店了关于面向对象对象的多不盛数,面向对象的框架一个又一个,更有大名鼑鼑的设计模式。。。
在看了无数本这样的书,并学习了无数的框架,同时在工作中广泛应用了的设计模式及其变种;
熟练的使用分层框架,而不是一个jsp包打天下;
熟练的使用抽象和多态,而不是难看的if...else;
小心翼翼的贯彻各个面向对象的原则,并写着大量的unittest,
开始沾沾自喜的也以为自己真的懂了面向对象。

但是,(如果没有但是。。。)随着工作越久发现自己的认识其实很浅。
自己所接触到,或者说是自己所体会,思考,以及应用的其实只是面向对象的实现技术部分,
而面向对象分析技术部分才刚刚开始学习。

Booch在其《面向对象分析与设计》一书中分为面向对象编程,面向对象分析,面向对象设计。
不过事实上,正如马丁同学所说的,关于分析和设计的界限很模糊,我愿意按自己的分类的理解:
1. 实现技术,即面向对象设计,其代表就是《设计模式》,以及《企业应用架构模式》。
至于面向对象编程只是面向对象实现的支撑——因为一个具体的语言提供能力会导致同一个设计有着不同表现,如同样的设计模式用java,c++和c#, 甚至smalltalk,python等动态语言下的实现可能不一样。关于语言,在javaeye上有过热烈讨论

2. 分析技术,即面向对象分析,其代表就是《分析模式》(感谢马丁同学的劳动)。
目前的资料和讨论,相对于实现技术来说太少了。即便如此,现有的一些资料也不是很容易理解,如《分析模式》我第一次阅读是在2003年夏天,受限于经验,只理解了chapter2,而其它的分析模式章节几乎是似是而非。在这2006年的春夏之交当我重新翻开《分析模式》,有了更多的体会。

阅读(436) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~