委派模式(Delegate)

Posted 楠来风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了委派模式(Delegate)相关的知识,希望对你有一定的参考价值。

 委派模式(Delegate)是面向对象设计模式中常用的一种模式。这种模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性。B好像就是一个受A授权委托的中介。第三方的代码不需要知道A的存在,也不需要和A发生直接的联系,通过B就可以直接使用A的功能,这样既能够使用到A的各种公能,又能够很好的将A保护起来了。一举两得,岂不很好!下面用一个很简单的例子来解释下:

[java]   view plain  copy
  1. <span style="font-size:18px;">class A  
  2.     void method1()...  
  3.     void method2()...  
  4.   
  5. class B  
  6.     //delegation  
  7.     A a = new A();  
  8.    //method with the same name in A  
  9.     void method1() a.method1();  
  10.     void method2() a.method2();  
  11.     //other methods and attributes  
  12.     ...  
  13.   
  14. public class Test  
  15.      public static void main(String args[])  
  16.     B b = new B();  
  17.     b.method1();//invoke method2 of class A in fact  
  18.     b.method2();//invoke method1 of class A in fact  
  19.       
  20.       
  21. </span>  

以上是关于委派模式(Delegate)的主要内容,如果未能解决你的问题,请参考以下文章

java 设计模式 --委派模式

委派模式和策略模式

jQuery中的事件委派(代理事件)delegate

揭秘设计模式之委派模式

委派模式精讲

Java 设计模式