委派模式

特点
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();
    }
}



你可能感兴趣的:(委派模式)