1. 类图
2. 示例
封装交互,简化调用
2.1 内部对象
public class CPU {
public void start(){System.out.println("cpu启动");}
public void shutDown(){System.out.println("cpu关闭");}
}
public class Disk {
public void start(){System.out.println("disk启动");}
public void shutDown(){System.out.println("disk关闭");}
}
public class Memory {
public void start(){System.out.println("memory启动");}
public void shutDown(){System.out.println("memory关闭");}
}
2.2 外观类组装
public class Computer {
private CPU cpu;
private Disk disk;
private Memory memory;
public Computer(){
cpu = new CPU();
disk = new Disk();
memory = new Memory();
}
public void start(){
System.out.println("电脑开始启动");
cpu.start();
disk.start();
memory.start();
System.out.println("电脑启动完成");
}
public void shutDown(){
System.out.println("电脑开始关机");
cpu.shutDown();
disk.shutDown();
memory.shutDown();
System.out.println("电脑关机完成");
}
}
2.3 客户端
public class Client {
public static void main(String[] args) {
Computer computer = new Computer();
computer.start();
System.out.println("===电脑使用完毕===");
computer.shutDown();
}
}
3. 优点
- 松散耦合
- 简单易用
- 更好的划分访问层次
4. 缺点
过多的或不合理的组合类容易让人迷惑