特点
1、类似于中介的功能(委托机制)
2、持有被委托人的引用 (工厂模式不需要)
3、 不关心过程,只关心结果
两个角色 ,受托人 、委托人
干活是我的 功劳是你的(最重要的特点)
为什么要用到委派模式
主要是隐藏具体实现逻辑,只关心结果
/**
* @desc 委托人
*/
public class Manager {
// 需要持有被委托人的引用,所以为了便于扩展,就直接给了一个受托人一个接口
private Trustee trustee;
public Manager(Trustee trustee) {
this.trustee = trustee;
}
public void doing(){
trustee.doing();
}
}
/**
* @desc 受托人
*/
public interface Trustee {
void doing();
}
/**
* @desc 有多个委托人
*/
@Slf4j
public class TrusteeA implements Trustee {
@Override
public void doing() {
log.info("我是TrusteeA,Manager这个委托人委托我干活");
}
}
/**
* @desc 有多个委托人
*/
@Slf4j
public class TrusteeB implements Trustee {
@Override
public void doing() {
log.info("我是TrusteeB,Manager这个委托人委托我干活");
}
}
public class DelegateTest {
public static void main(String[] args) {
/**
* 工作都直接安排给管理者(委托人),而实际管理者并不干活,而是直接把工作交给下面的人(受托人)
*/
Manager manager = new Manager(new TrusteeB());
manager.doing();
}
}