POP OOP AOP DDD
POP Procedure Oriented Programming POP面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步 骤一步一步实现,使用的时候一个一个依次调用就可以了。 逻辑实现的过程
OOP Object Oriented Programming OOP面向对象编程,是按人们认识客观世界的系统思维方式,采用基于 对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的 办法。 考虑问题的方式是从对象出发,分治思想,分而治之。 程序的设计思想
其实在OOP的内部,依旧是POP的线性思维 OOP是程序设计 ,POP是内部实
AOP Aspect Oriented Programming AOP面向切面编程:解决面向对象语言的静态问题,能突破类的限制, 去动态扩展类的功能 既不破坏封装,又能额外增加功能(有实例) 对OOP的补充,在OOP中插入一些东西
AOP多种实现
1 静态代理,已完成,代理模式-装饰器模式
2 动态代理,已完成,靠反射代理,以前RealProxy-还有Castle(靠emit)
3 静态织入,代表PostSharp (收费);Aspect
4 委托嵌套,ASP.NET Core管道中间件
5 特性+反射,ASP.NET Core的Filter
6 IOC容器,autofac-Unity等,其实是基于动态代理或者emit完成
Domain-Driven Design DDD领域驱动设计
POP-无边界
OOP-以对象为边界
DDD-其实就是扩大边界,将对象组装成领域,程序分析设计轻松点
DDD是一种程序分析设计方法,不关乎具体技术 具体代码实现,依旧是OOP