zoukankan      html  css  js  c++  java
  • AOP

    什么是切片

    程序要完成一件事情,一定会有一些步骤,1,2,3,4这样。这里分解出来的每一个步骤我们可以认为是一个切片。

    什么是AOP

    你针对每一个切片的间隙,塞一些代码进去,在程序正常进行1,2,3,4步的间隙可以跑到你塞进去的代码,那么你写这些代码就是面向切片编程

    解决什么问题

    如果想在每个步骤中间做一些自己的事情,不用AOP的话,需要直接往步骤之间塞代码就好了。但通常塞进去的代码很有可能跟原业务无关,比如统计。这就会导致同一份代码文件里掺杂了多种业务,造成业务之间的耦合。为了降低这种耦合,需要使用AOP

    如何实现AOP

    AOP一般都是需要有一个拦截器,然后在每一个切片运行之前和运行之后(或者任何你希望的地方),通过调用拦截器的方法来把这个jointpoint扔到外面,在外面获得这个jointpoint的时候,执行相应的代码。
    iOS中实现AOP总体来说有两种方法:

    • method swizzling. 这种方法的最小粒度是方法。这种方法有了成熟的开源库Aspects.
    • delegate. 定义一个protocol, 然后在合适的时机把jointpoint扔给代理,让代理做一些事情。

    本文参考

    iOS应用架构谈(三):View层的组织和调用方案(下)

  • 相关阅读:
    python3.6关键字总结
    python文件操作
    基础之你容易忽略的细节
    模块一
    内置函数
    java成员变量和局部变量的区别
    java面向对象
    java数组
    java函数(方法)语法规则
    java流程控制switch
  • 原文地址:https://www.cnblogs.com/mindyme/p/4584113.html
Copyright © 2011-2022 走看看