POP–面向过程编程(Process-oriented programming ):
面向过程强调的是功能(加工),数据仅仅作为输入和输出存在。这种过程化的思想是一种很朴素和普遍的思想和方法,人类很多活动都是这种组织模式,比如工厂生产,企业服务等。
一种以过程为中心的编程思想,分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
OOP–面向对象编程(Object Oriented Programming):
OOP:类>功能>功能模块>系统 对比 桩>房间>楼层>大厦
由上面对比可以看到,面向对象设计必须要保证类的稳定,不能修改。一栋大厦一样,你去改造一个功能点或者楼层装修,如果连桩都动了,那么这个大厦就不稳定了
而我们GOF23种设计模式,其实就是设计大厦的设计图纸, 在确定需求之后用某种设计图纸来满足你这个大厦以后的扩展需求 否则如果你大厦要扩展,那就要去动桩了,然后整个大厦就不稳定
但是项目需求迭代中,肯定会碰到需要更改类的时候,而AOP就是对OOP的一种扩展,
AOP–面向切面编程(Aspect Oriented Programming)
基于IOC的Unity微软的框架可以实现AOP,目前用到较多的 推荐使用
特点:1.只聚焦于自身的模块业务逻辑,不需要去做公共功能 ,OOP的一种扩展
2.其实就是在方法的前后加功能,像MVC的过滤器,特性就是典型的AOP思想
3.装饰器模式,代理模式 都是实现AOP思想,
关系:
1、面向目标不同:简单来说OOP是面向名词领域,AOP面向动词领域。
2、思想结构不同:OOP是纵向结构,AOP是横向结构。
3、注重方面不同:OOP注重整个功能块一路下去的业务包括公共功能,AOP偏重自身业务,不去处理公共业务