委派模式(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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle 发布 Java 24
通讯员
148次阅读
2025-03-19 10:08:51
Oracle 正式发布 Java 24
千钧
108次阅读
2025-03-20 11:26:28
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
阿里巴巴中间件
43次阅读
2025-04-08 11:01:30
Java 与 Oracle 集成
芃芃
42次阅读
2025-03-19 21:21:38
从零玩转GaussDB:Java开发者必学的JDBC操作指南
数据库运维之道
31次阅读
2025-03-19 11:20:48
java项目选择云服务器怎么选?
云知识CLOUD
26次阅读
2025-04-09 20:02:37
Java反射大揭秘:程序员的“偷窥”与“开挂”指南
让天下没有难学的编程
15次阅读
2025-03-28 15:02:40
瞧瞧别人家的判空,那叫一个优雅!
jinchanchanwaji
14次阅读
2025-04-03 14:56:21
Java反射大揭秘:程序员的“偷窥”与“开挂”指南
让天下没有难学的编程
10次阅读
2025-03-23 22:09:15
【JVM祖传手艺大揭秘】双亲委派:Java世界的"啃老"生存法则
让天下没有难学的编程
9次阅读
2025-04-09 11:01:12