用通俗的话解释java的AOP, 所谓面向切面编程

不知道为什么, 计算机界的人写的文章都非常的难懂.
一度让人怀疑是不是自己的问题.
一开始的"对象"这个词就有问题, 生成一个对象, 为什么不叫生成一个实例呢? 明显实例好理解多了, 而且"对象"还有歧义.
还有一个什么"最佳实践". 什么鬼! 其实就是"最好这么做"或"推荐做法".
特别是这个AOP(面向切面编程), 这种名字就叫人看不懂, 什么切不切面的.

为什么要起这些奇怪的名字呢, 是不是有什么阴谋?

好, 来说一下.
所谓AOP, 叫做"代码插入式编程风格"好理解一点.
在"对象风格编程"时代, 一发现有重复的代码, 人们就将这块代码抽出来成为一个类. 用这个类来管理这些代码.
但是, 不是所有的重复代码都抽得出来, 有时需要在代码的前后插入.
用对象抽象方法就非常麻烦.
这时有人就想出一方法, 在编译时在这段代码的前后插入代码.
有人给这个事情命名什么切面...还拉面呢.

顺便说一下所谓的"动态代理". 说得云里雾里的.
其时就是, 实现AOP的一种方法.
在运行时, COPY一个类, 就是创建它的分身, 给这个分身插入额外的增强代码.
执行任务的时候, 就用分身来进行.
这就是影分身之术!

所以, 面向对象编程, 什么对象不对象, 还面向领导编程...
不如叫 物体化编程.

改叫法这种事情已经有先例了. Martin Fowler就觉得"控制反转"这种叫法莫名其妙, 不如叫"依赖注入".

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 团队开发框架实战—面向切面的编程 AOP 引言 软件开发的目标是要对世界的部分元素或者信息流建立模型,实现软件系统...
    Bobby0322阅读 9,665评论 4 49
  • 本章内容: 面向切面编程的基本原理 通过POJO创建切面 使用@AspectJ注解 为AspectJ切面注入依赖 ...
    谢随安阅读 8,445评论 0 9
  • 从小爱吃鱼。 糖醋、红烧、清蒸;煎的,炸的,炖的,焖的……各有各的风味;鲫鱼,鲤鱼,黄花鱼各有各的口味,虽然都是家...
    烈酒长歌阅读 2,713评论 0 0
  • 做完了一系列的检查,接下来就没事情做了,医院里没有电视,没有wifi,这可如何是好啊,中午吃了顿医院的饭,...
    山东小百科阅读 3,434评论 0 0
  • 这一天 五味杂陈 车厢消毒水的味道 让我的鼻子和胃翻江倒海 如此矫情的感受只是因为 消毒水的味道? 找不到坚强的理...
    陌陌尘埃阅读 3,222评论 2 2