编程思想
三大编程思想:
POP:面向过程编程(Procedure Oriented Programming)
OOP:面向对象编程(Object Oriented Programming)
AOP:面向切面编程(Aspect Oriented Programming)
以下大部分内容引用腾讯云一位笔者,我也是进一步了解纯记录之目的。
POP
面向过程编程是以功能为中心来进行思考和组织的一种编程方式,它强调的是功能,在程序设计中主要以函数或过程为程序的基本组织方式,系统功能是由一组相关的过程和函数序列构成。
分析解决问题所需要的步骤,然后用函数把这些步骤一一实现,使用的时候按顺序依次调用就可以了。代码线性,严格按着顺序,侧重解决步骤,着眼局部和具体。
优:
流程化编程任务明确,在开发之前基本考虑了实现方式和最终结果
开发效率高,代码的短小精悍,善于结合数据结构来开发高效率的程序
流程明确,具体步骤清楚,便于节点分析
缺:
需要深入的思考,耗费精力
代码重用性低,不易扩展,维护起来难度大
对复杂业务,面向过程的模块化难度较高,耦合度比较高
OOP
面向对象编程是以对象为中心,是一种新型的程序设计方法。针对业务处理过程的实体及其属性和行为进行抽象封装,万物皆对象.。
面向对象有特性:封装、继承、多态,还有抽象,这几个特性应该都清楚
优:
结构清晰:注重对象和职责,不同的对象承担不同的职责
封装性:将事物高度抽象,便于流程中的行为分析、操作
易扩展:代码重用率高,可继承,可覆盖
实现简单:可有效地减少程序的维护工作量
缺:
面向对象在面向过程的基础上高度抽象,从而和代码底层的直接交互非常少,从而不适合底层开发和游戏开发,甚至是多媒体开发
复杂性,对于事务开发而言,事务本身是面向过程的,过度的封装导致事务本身的复杂性提高
AOP
在设计模式专题,提到过装饰器模式,他是快速实现AOP的一种简洁方式,AOP是OOP的延续,AOP用来统一管理公有模块,提高代码复用率
优:
简单,易用
降低模块的耦合度
使系统容易扩展
设计决定的迟绑定:设计师可以推迟为将来的需求作决定
缺:
增加额外重复代码,且紧耦合
每个业务逻辑需要一个装饰器实现或代理
使用麻烦,须增加容器
总结:
pop以功能为中心,注重功能的实现,达到效果就行
oop以对象为中心,注重抽象,代码更加规范
aop抽出公共部分
三种编程思想相互补充和完善