问答详情
源自:6-2 ProxyFactoryBean及相关内容(上)

在target里定义内部bean的方式取代了引用外部bean的方式的意义在于:隐藏了被代理类和代理类之间的区别。我能弱弱的问一句:“被代理类和代理类之间有什么区别呢?”求路过的好心人用通俗的语言帮我回答这个问题吧。

http://img.mukewang.com/5732a8a20001b68814050683.jpg

请您用通俗的语言来回答,最好别复制粘贴,最好越啰嗦越好,我想更多的感受您的语言的魅力!

提问者:java家洼 2016-05-11 11:43

个回答

  • 齐ham
    2016-05-18 18:25:42
    已采纳

    场景:

        你要把一个礼物从上海寄给北京的翠花。

    选择:
            1、肉身搭飞机去北京送给翠花。
            2、寄 X 丰。

    结果:

        两种选择都可以把礼物送到翠花手上。

        你和 X 丰都有送礼物的功能,这叫实现同一接口。

        你可以选择任意方式来完成送礼物,这叫客户端使用多态来选择任一对象,具体实现延迟到子类。

        X 丰提供包装服务,这是你所不用提供的,也就是这里说的通知 advice,在送你的礼物的前面包装礼物。

        X 丰不能告诉翠花这礼物是 X 丰 CEO 送的,必须说是你送的,这叫做代理内部有一个被代理类的实例,该实例就是你。

    PS.

        这是我看了设计模式的书总结出来的,代理模式。这里的代理意思是 Spring 内部实现了将你的类和切面合在一起当成一个接口类给你项目中其他代码调用,而你原先的业务代码只有一个职责,其余的切面应该完成的职责都被包含在代理类里面了。

  • 寂静喜欢
    2018-10-17 12:01:58

    会玩儿!