目录
- pOP
- OOP
- AOP
- DDD
- unity的AOP实现
1:POP:面向过程编码,一路执行下去,不好扩展。
2;OOP:面向对象 封装 继承 多态
1.编码前,把需求以对象维度去拆分
2.功能怎么产生的?对象与对象之间的交互,就是类与类之间的依赖
3.所以只要交互的接口不变,这样对象内部的变化不影响其他对象
封装:1. 就是确定好这个对象的行为(业务逻辑)=对象的确定,隔离好内部的业务逻辑之后 就不用去操心外部的实现
2.数据安全,可以通过不同级别的访问修饰符如public private等 限定外部是否调用
3:降低耦合,以前是面向过程 现在是对象与对象之间
4.提高重用,对象重用
继承:子类继承父类,子类拥有父类的一切,任何父类出现的地方都可以被子类替代
1.代码重用
2.单基类继承:只能有一个父类
3.继承之后会有重写 覆写() 重载(方法签名一样,方法参数列表不一样)
4.子类继承父类之后,为什么父类实例化的时候,可以使用子类实例化,?是因为子类继承父类后,默认有一个无参构造函数继承:base(指向父类),这样构造子类之前先去执行构造父类
多态:
1.继承后多态:一个父类,可以被多个子类继承,每个子类拥有自己不同的方法
2.运行时多态:虚方法:父类必须包含实现,但可以被重载,覆写(子类继承父类的虚方法之后加了new,隐藏子类方法,在运行时任然会执行父类方法)
3.抽象方法,子类继承后必须重写
3.AOP:面向切面编程,在执行一个oop方法之前或之后,动态的新增功能,不影响oop原先的方法
#OOP造房子: 类>类库>架构>系统 房子》一层楼》梁柱》大厦 大厦的稳定需要房子不能随便去拆,但是现实中的需求是不断变更的,这就矛盾了
#AOP就是来解决上面不稳定的问题,AOP可以动态的改变OO的模型,相当于你要在装修房子的时候,动态的提前给你装修前做好工作,让你不再装修房子,保持稳定
5.Unity使用AOP简单3步
#第一:先增加3个引用
1. Unity 2.Unity.Interception 3.Unity.Interception.configuration(用来读取配置文件的)
#2.增加配置文件---配置文件配置的是相关类的实现,相关类的实现必须要实现这个IInterceptionBehavior接口,实现方法
#3.执行---按照配置文件配置的顺序执行;
#MVC中的AOP实现是通过特性标识来支持AOP,五大过滤器,Authiretion...