外部系统或客户类在访问我们的系统时,不需要一个个了模块进行访问,我们提供一个外观模式的实现类,在这个类中完成所需要的子模块的调用,那么外部系统或客户只需要调用我们的这个外观模式类就可以,这就降低了外部系统凋用的复杂程度。
优点:松散耦合,简单易用,更好的划分访问的层次
缺点:过多使用容易发生混乱
何时使用外观模式:想使子系统更易于外部调用;想使客户程序与自己系统的耦合度降低;如果想构建多层次的系统,就使用外观。
Code:
接口:CPU
public interface CPU {
public void product();
}
CPU接口实现类:CPUImpl
public class CPUImpl implements CPU {
@Override
public void product() {
System.out.println("CPU");
}
}
接口:Disk
public interface Disk {
public void product();
}
Disk接口实现类:DiskImpl
public class DiskImpl implements Disk {
@Override
public void product() {
System.out.println("Disk");
}
}
外观类:Product
public class Product {
public void productdo(){
CPU c = new CPUImpl();
c.product();
Disk d = new DiskImpl();
d.product();
}
}
测试类:Test
public class Test {
public static void main(String args[]){
Product product = new Product();
product.productdo();
}
}