函数式编程
面向过程的编程方式就好似流水线的编程。
函数式编程
函数式编程是应def去模拟数学式的函数思想。这种思想的好处是传入一个参数,就会得到一个唯一的结果。
函数式编程不修改外部的状态。
x = 1 def test(x): return 2*x+1 test(x)
例中def的x参数没有实质性的改变x=1。
面向过程的程序设计
有点:降低了程序的复杂度
缺点:一套流水或者流程就是用来解决一个问题的,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发动全身。
应用场景:一旦完成基本很少改变场景,例如liunx内核、git、Apache等。
面向对象的程序设计
有点:解决了程序的扩展性,对某个对象单独修改,会立刻反应到整个体系中,如对游戏中的一个人物参数的特征和技能修改都很容易。
缺点:可控性差,无法向面向过程的程序设计流水线式的可以很精准的预测问题的处理流程和结果,面向对象的程序一旦开始就有对象之间的交互解决问题,即便是上帝也无法预测最终结果,于是我们经常看到一个游戏人物一个参数的修改极有可能导致灭霸的技能出现,一个响指,游戏就失去平衡。
应用场景:需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等都是面向对象的程序设计大显身手的地方。
---------------- END ---------------