JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Java,设计模式,结构型,外观模式,对外提供一个一致的接口

wys521 2025-03-10 21:25:56 精选教程 45 ℃ 0 评论

外观模式(Facade Pattern):

一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。

外观模式,对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性;外观模式是迪米特法则的典型应用;

外观模式,也称之为门面模式

外观模式的角色:

外观(Facade)、子系统(Sub System)和客户(Client);

外观模式的案例:

需求:计算机启动时一个复杂的过程,主要包含:BlOS检查、CPU执行、硬盘(HardDrive)读取、内存(Memory)访问、操作系统(OS)加载启动等过程,现需要封装成一个简单的启动供客户端使用;

实现类图:

实现代码:

/**
 * 子系统角色
 */
public class BlOS {

	public void check() {
		System.out.println("BlOS检查...");
	}
	
}
/**
 * 子系统角色
 */
public class CPU {

	public void execute() {
		System.out.println("CPU执行...");
	}
	
}
/**
 * 子系统角色
 */
public class HardDrive {

	public void read() {
		System.out.println("硬盘读取...");
	}
	
}
/**
 * 子系统角色
 */
public class Memory {
	
	public void access() {
		System.out.println("内存访问...");
	}

}
/**
 * 子系统角色
 */
public class OS {

	public void load() {
		System.out.println("操作系统加载...");
	}
	
	public void start() {
		System.out.println("操作系统启动...");
	}

}
/**
 * 门面角色
 */
public class ComputerFacade {
	
	private BlOS bios;
	private CPU cpu;
	private HardDrive hardDrive;
	private Memory memory;
	private OS os;
	
	public ComputerFacade(BlOS bios,CPU cpu,HardDrive hardDrive,Memory memory,OS os) {
		this.bios = bios;
		this.cpu = cpu;
		this.hardDrive = hardDrive;
		this.memory = memory;
		this.os = os;
	}
	
	public void start() {
		this.bios.check();
		this.cpu.execute();
		this.hardDrive.read();
		this.memory.access();
		this.os.load();
		this.os.start();
	}
	
}
/**
 * 客户端
 */
public class FacadeClient {

	public static void main(String[] args) {
		// 子系统
		BlOS bios = new BlOS();
		CPU cpu = new CPU();
		HardDrive hardDrive = new HardDrive();
		Memory memory = new Memory();
		OS os = new OS();
		// 门面
		ComputerFacade computerFacade = new ComputerFacade(bios, cpu, hardDrive, memory, os);
		computerFacade.start();
	}

}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表