download:C#速成指南:从入门到进阶,实战WPF与Unity3D开发无密
AOP产生背景
使用面向对象编程 ( OOP
)有一些弊端,当需要为多个不具有继承关系的对象引人同一个公共行为时,例如日志、安全检测等,我们只有在每个对象里引用公共行为,这样程序中就产生了大量的重复代码,程序就不便于维护了,所以就有了一个对面向对象编程的补充,即面向方面编程 ( AOP ), AOP 所关注的方向是横向的,区别于 OOP 的纵向。
什么是AOP
什么是面向方面编程,3个过程:
【C#速成指南(从入门到进阶,实战WPF与Unity3D开发吾爱fen享)】找到横切点:首要目标确定在程序的哪个位置进行横切逻辑
横切逻辑(业务代码):横切逻辑代码,这个就是横切业务代码,与aop无关
织入:将横切逻辑织入到横切点
开发者主要关心的是横切逻辑的编写,只需要很少的代码
编写确定横切点有哪些,而不需要去为每个横切点添加横切逻辑,不然就是面向对象编程了。
既然是横向的编程,那么在我们的程序中,哪些可以作为横线切入点呢?
看下示例代码:
public class Test {
public static void main(String[] args) {
//@1
B b = new B();
//@2
b.method();
//@3
B.say();
}static class B {
//字段
//@4
private String name;
//构造方法
public B() {
//@1.1
}
//对象方法
public void method(){
//@2.2
}
//静态方法
static void say(){
//@3.3
推荐阅读
- C#速成指南(从入门到进阶,实战WPF与Unity3D开发)
- Unity3D_UGUI|UIGU源码分析3 (ExecuteEvents)
- Unity3D 2021.1.2F1 发布了。赋国际版本下载地址。
- unity3d LTS(2018-2020)国际版本下载与安装。
- unity项目源代码|unity3d游戏3dRPG角色扮演完整项目源码分享
- Unity3D|Unity Addressables 深入浅出(一)
- Unity|Unity通用框架搭建(五)——基于Addressable一键打包工具
- Unity3D|【游戏开发高阶】从零到一教你Unity使用ToLua实现热更新(含Demo工程 | LuaFramework | 增量 | HotUpdate)
- Unity3D|《学Unity的猫》——第十三章(Unity使用Animator控制动画播放,皮皮猫打字机游戏)