欢迎大家加入我的社区:http://t.csdn.cn/Q52km
社区中不定时发红包

1、UML类图

在这里插入图片描述


2、源码

package com.zheng;

public class MainFrame {
	private Memory memory=new Memory();		//关联关系建立联系
	private Cpu cpu=new Cpu();
	private HardDisk harddisk=new HardDisk();
	private Os os=new Os();
	
	public void fun() {
		memory.display();
		cpu.display();
		harddisk.display();
		os.display();
		System.out.println("开机正常");
		
	}

}


package com.zheng;

public class Memory {
	public void display() {
		System.out.println("1、内存正常");
	}

}


package com.zheng;

public class Cpu {
	public void display() {
		System.out.println("2、cpu运行正常");
	}


}

package com.zheng;

public class HardDisk {
	public void display() {
		System.out.println("3、硬盘读取正常");
	}


}

package com.zheng;

public class Os {
	public void display() {
		System.out.println("4、操作系统载入正常");
	}


}

package com.zheng;

import java.util.Scanner;

public class Client {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		while (true) {

			MainFrame f = new MainFrame();
			Scanner scan = new Scanner(System.in);
			System.out.println("请输入ON进行开机:");
			String str = scan.nextLine();
			if (str.equals("ON")) {
				f.fun();
			} else {
				System.out.println("输入的信息有误!!!请重新输入");
			}
		}
	}

}

3、优缺点

优点:1、实现了子系统和客户端之间的松耦合关系,这使得子系统的变化不会影响到调用它的客户端,只需要调整外观模式就可以。2、一个子系统的修改对其他子系统没有任何影响。3、对客户端屏蔽了子系统的组件,减少了客户端所需处理的对象数目。
缺点:1、如果设计不当、增加新的子系统可能需要修改外观类的源代码,违反了开闭原则。2、不能很好的限制客户端直接使用子系统类。


在这里插入图片描述

posted on 2022-08-28 22:16  热爱技术的小郑  阅读(60)  评论(0编辑  收藏  举报