外观模式-Facade
2024-09-16 16:34:57
外观模式是为了解决类与类之间依赖关系的,外观模式将类间关系放在一个Facade类中,降低了类类之间的耦合度,该模式中不涉及接口
举一个经典的例子:
CPU类:
public class CPU {
public void startup(){
System.out.println("cpu startup");
} public void shutdown(){
System.out.println("cpu shutdown");
}
}
Mainboard类:
public class Mainboard { public void startup(){
System.out.println("mainboard startup");
} public void shutdown(){
System.out.println("mainboard shutdown");
}
}
Disk类:
public class Disk { public void startup(){
System.out.println("disk startup");
} public void shutdown(){
System.out.println("disk shutdown");
}
}
Computer类(外观类):
public class Computer {
private CPU cpu;
private Mainboard mainboard;
private Disk disk; public Computer(){
cpu = new CPU();
mainboard = new Mainboard();
disk = new Disk();
} public void startup(){
System.out.println("starting the computer");
cpu.startup();
mainboard.startup();
disk.startup();
System.out.println("computer is started");
} public void shutdown(){
System.out.println("closing the computer");
disk.shutdown();
mainboard.shutdown();
cpu.shutdown();
System.out.println("computer is closed");
}
}
测试类:
public class Main { public static void main(String[] args) {
Computer computer = new Computer();
computer.startup();
computer.shutdown();
}
}
测试结果:
starting the computer
cpu startup
mainboard startup
disk startup
computer is started
closing the computer
disk shutdown
mainboard shutdown
cpu shutdown
computer is closed
如果我们没有外观类(Computer),CPU、Mainboard、Disk之间将会相互持有实例对象,造成严重的依赖;而有了Computer,他们之间的关系被放在了Computer类里,这样就起到了解耦的作用。这就是外观模式!
最新文章
- 【资料下载区】【iCore3相关代码、资料下载地址】更新日期2017/1/5
- aix磁盘分区挂载问题
- Unity3D心得分享
- adapter.notifyDataSetChanged(); 没有反应
- 想要提高网页转换率?试试这16 个UI 秘诀
- JQuery设置和去除disabled属性
- 求二叉树的深度和宽度[Java]
- functional cohesion
- 每日一九度之题目1016:火星A+B
- 六月计划#1A(6.1-6.8)
- java 8 中lambda表达式学习
- structs 拦截器
- let区别(关于racket和r5rs)
- python3 爬取boss直聘职业分类数据(未完成)
- Java SE之字符串常量池
- MIME Type和Content-Type
- 小菜菜mysql练习解读分析2——查询存在"; 01 ";课程但可能不存在"; 02 ";课程的情况(不存在时显示为 null )
- AsynchronousFileChannel 使用的默认线程池的疑问
- Payment相关逻辑
- PL/SQL常用语法及举例