面向对象
一、相关概念
- 面向过程:从上到下垒代码
- 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
- 面向对象:对函数进行分类和分装,让开发更方
二、面向过程和面向对象比较
面向过程的程序设计的核心是过程(流水线式思维),过程就是解决问题的步骤,面向过程的设计就好比设计好一条流水线。
- 优点:极大的降低写程序的复杂程度,只要顺着执行代码即可。
- 缺点:一套流水线或者流程就是用来解决一些问题,代码牵一发而动全身。
应用场景:一旦完成基本很少改变环境,像Linux内核,git,以及Apache等
面向对象的程序设计的核心是对象(上帝思维),要理解对象为何物,必须把自己当成上帝,在上帝的眼里世间存在的万物皆是对象,不存在的也可以创造出来。面向对象的程序设计好比如来设计西游记,如来要解决的问题是把经书传给东土大唐,如来想了想解决这个问题需要唐僧,沙和尚,孙悟空、猪八戒四个人,他们每个人都有各自特征和技能(这就是对象概念,特征和技能分别对应对象的数字那个和方法)西游记中布只有他们四人,还有很多妖魔鬼怪和神仙,这些都是对象。然后取经开始,途中师徒四人历经九九八十一难,最后取得真经,如来根本不会管师徒按照怎样流程去取。
- 优点:解决程序的拓展性。对某一个对象单独修改,会立刻反应到整个体系中,比如对游戏中的一个任务的特征和仅能修改都很容易。
- 缺点:可控性差,无法向面向过程设计流线式的可以很精准的预测问题的额处理流程与结果,面向对象的程序一旦开始就由对象之间的交互解决问题,即便是上帝也无法预测最终结果。于是我们经常看到一个游戏人物某一参数的修改及有可能导致技能过于厉害,一刀砍死3个人,这个游戏就失去平衡
应用场景:需求经常变化的软件,一般要求变化都集中在用户层,互联网应用,企业内部软件,游戏等

浙公网安备 33010602011771号