面对过程的程序设计的核心是 过程(流水线式思维),过程即解决问题的步骤,面向过程的是设计就好比进行设计好一条流水线,考虑周全,什么时候处理什么东西。
优点:极大的降低了程序的复杂度
缺点:一套流水线或者流程就是 用来解决一个问题,生产汽水的流水线无法生产汽车,即便能,也得是大改,改一个组件,牵一发动全身。
应用场景:一旦完成基本很少改变的场景,著名的例子有Linux,git,以及Apache HTTP Server等。
面向对象的程序设计的核心是 对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为 对象,不存在的也可以创造出来。面向对象的程序设计好比如来设计西游记,如来要解决的问题是吧经书传给东土大唐,如来想了解这个问题需要四个人:唐僧,沙和尚,猪八戒,孙悟空,每个人都有各自的特征和技能(这就是对象的概念,特征和技能 分别对应对象的 数据属性和方法属性),然而这并不好玩,于是如来有安排了一群妖魔鬼怪,为了防止师徒四人在取经路上被搞死,又安排了一群神仙保驾护航,这些都是对象。然后取经开始,师徒四人与妖魔鬼怪神仙交互着直到最后取到真经。如来不会管石头四人按照什么流程去取。
优点:解决了程序的扩展性。对某一个对象修改,会立刻反应到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易。
缺点:可控性差,无法像面向过程的程序设计流水线的可以很精准的预测问题的处理流程和结果,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。于是我们经常看到一个游戏人某一参数的修改极有可能导致阴霸的技能出现,一刀砍死3个人,这个游戏就失去平衡。
应有场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业软件,游戏等都是面向对象的程序设计大显身手的好地方。
面向对象的程序设计并不是全部。对于软件质量来说,面向对象的程序设计只是用来解决扩展性
时间: 2024-12-22 06:57:24