暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JAVA设计模式之委派模式

小宇想买乌龟 2018-10-19
500


委派模式(Delegate)是面向对象设计模式中常用的一种模式。这种模式的原理为类B和类A是两个互相没有任何关系的类,B具有和A一模一样的方法和属性;并且调用B中的方法,属性就是调用A中同名的方法和属性

场景在一个项目组中,项目经理的工作主要是协调组员干活的。当boss安排一个功能需要写代码时,项目经理安排程序员去做,如果安排了测试的任务的话,那么项目经理就会去找测试。在这整个过程中,对于boss来说,任务都是项目经理完成的。boss并不关心程序员和测试人员。甚至可以不用知道有测试人员和开发人员。这样的好处是,能够把我们自己功能类保护起来,不让外部修改。

package delegate;
//项目经理
class Manager{
    Tester t = new Tester();
    Programer p = new Programer();
    public void tester() {
        System.out.println("项目经理委派测试人员测试!");
        t.tester();
    }
    public void writeCode() {
        System.out.println("项目经理需要程序员开始写代码!!");
        p.writeCode();
    }
}
//测试人员类
class Tester{
    public void tester() {
        System.out.println("我是测试,我开始测试功能了");
    }
}
//程序员类
class Programer{
    public void writeCode() {
        System.out.println("我是程序员,正在写代码~");
    }
}
public class Client {
    public static void main(String[] args) {
        Manager m = new Manager();
        m.tester();
        System.out.println("-----------------");
        m.writeCode();
    }
}

复制

执行一遍可以看到

分析代码我们可以看到,客户端调用的是Manager类,但是真正实现功能的其实是包装在Manager类中的方法里面。在客户端里面,是没法修改到Tester类或者Programer类的。委派模式只关注结果,不在乎过程


文章转载自小宇想买乌龟,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论