Thinking inUML摘录(一)-面向过程,面向对象

摘录:

 在很多人看来,面向对象和面向过程都是一种软件技术。例如把面向过程归纳为结构化程序设计,DFD图,ER模型,UC矩阵等,二面向对象则归纳为继承,封装,多肽,复用等具体的技术。事实上,上述的所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具,他们只是表征而不是本征。

UML创始人之一Grady Booch说过:我对面向对象编程的目标重来不是复用(注意:复用是一种技术),相反,对我来说,对象提供了一种处理复杂性问题的方式,这才是面向对象编程运动的真正胜利。

所以不管是面向过程还是面向对象都是一种古已有之的认识论,他们之所以流行是因为现实世界的复杂程度问题。认识到这一点,我们应该知道比掌握具体的技术更重要的是掌握认识论所采用的方法和分析过程,只有掌握了方法才能自如地使用工具。

 

面向对象:世界的本质是由对象组成的,平时看上去互相无关的独立对象在不同的驱动力和规则下体现出不同的运动过程,然后这些过程便展现出了我们这个生动的世界。

面向过程:世界的一切都不是孤立的,他们相互紧密联系在一起,缺一不可,相互影响,相互作用,并形成一个个具有严格因果律的小系统;而这些更多的小系统组成更大的系统,所以小系统之间的联系也是紧密他不可分割的。

这里有个知乎的问题,有几个回答还是不错的:

http://www.zhihu.com/question/19701980

总结:

面向对象:谁做,谁和谁配合做。

面向过程:做什么。

面向对象中对象之间互相配合生成不同的过程,二面向过程只是一个个死死的过程。

从这一点看来面向对象更灵活,也更容易扩展。

但也带来了新的问题是:

1.对象从哪里来的?

2.对象之间如何配合才更有效?

 

 

你可能感兴趣的:(UML)