设计模式---委派模式(Delegate)
⽬录
简介
包含⾓⾊
UML类图
java实现
说明
1. 简介
不属于23 种设计模式之⼀,是⾯向对象设计模式中常⽤的⼀种模式。这种模式的原理为类B和类A 是两个互相没有任何关系的类,B 具有和A ⼀模⼀样的⽅法和属性;并且调⽤B 中的⽅法,属性就是调⽤A 中同名的⽅法和属性。B好像就是⼀个受A授权委托的中介。第三⽅的代码不需要知道A 的存在,也不需要和A 发⽣直接的联系,通过B 就可以直接使⽤A 的功能,这样既能够使⽤到A 的各种功能,⼜能够很好的将A 保护起来了,⼀举两得。
2. 包含⾓⾊
2.1 抽象委派⾏为
需要委派的⾏为
2.2 委派者⾓⾊
⾃⼰本⾝不实现功能,知道有哪些类可以实现,并持有实现类得对象
2.3 被委托者⾓⾊
具体实现得类
2.4 客户⾓⾊
调⽤⽅
3. UML类图
4. java实现
4.1 抽象委派⾏为
/**
* @program: pattern
* @description: 抽象委派⾏为
* @author: chengqj
* @create: 2018-07-31 19:46
**/
public interface ITarge {
void doTarge(String commond);
}
4.2 被委托者⾓⾊
/**
* @program: pattern
* @description: 被委托者⾓⾊
* @author: chengqj
* @create: 2018-07-31 19:47
**/
public class Member implements ITarge{
@Override
public void doTarge(String commond){
System.out.println("member A :"+ commond);
}
}
4.3 委托者⾓⾊
/**
* @program: pattern
* @description: 委托者
* @author: chengqj
* @create: 2018-07-31 19:46
**/
public class Leader implements ITarge{
private Map<String,ITarge> members =new HashMap<>();
public Leader(){
members.put("加密",new Member());
}
@Override
public void doTarge(String commond){
<(commond).doTarge(commond);
java中常用的设计模式有哪些}
}
4.4 客户⾓⾊
/**
* @program: pattern
* @description: 具体⾓⾊
* @author: chengqj
* @create: 2018-07-31 19:43
**/
public class Boss {
public static void main(String[] args){
new Leader().doTarge("加密");
}
}
5. 说明:
就是静态代理和策略模式⼀种特殊的组合。代理模式注重的是过程, 委派模式注重的是结果,策略模式注重是可扩展(外部扩展),委派模式注重内部的灵活和复⽤

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。