不知道为什么, 计算机界的人写的文章都非常的难懂.
一度让人怀疑是不是自己的问题.
一开始的"对象"这个词就有问题, 生成一个对象, 为什么不叫生成一个实例呢? 明显实例好理解多了, 而且"对象"还有歧义.
还有一个什么"最佳实践". 什么鬼! 其实就是"最好这么做"或"推荐做法".
特别是这个AOP(面向切面编程), 这种名字就叫人看不懂, 什么切不切面的.
为什么要起这些奇怪的名字呢, 是不是有什么阴谋?
好, 来说一下.
所谓AOP, 叫做"代码插入式编程风格"好理解一点.
在"对象风格编程"时代, 一发现有重复的代码, 人们就将这块代码抽出来成为一个类. 用这个类来管理这些代码.
但是, 不是所有的重复代码都抽得出来, 有时需要在代码的前后插入.
用对象抽象方法就非常麻烦.
这时有人就想出一方法, 在编译时在这段代码的前后插入代码.
有人给这个事情命名什么切面...还拉面呢.
顺便说一下所谓的"动态代理". 说得云里雾里的.
其时就是, 实现AOP的一种方法.
在运行时, COPY一个类, 就是创建它的分身, 给这个分身插入额外的增强代码.
执行任务的时候, 就用分身来进行.
这就是影分身之术!
所以, 面向对象编程, 什么对象不对象, 还面向领导编程...
不如叫 物体化编程.
改叫法这种事情已经有先例了. Martin Fowler就觉得"控制反转"这种叫法莫名其妙, 不如叫"依赖注入".
网友评论