外观模式
GOF对于外观模式的定义为:为子系统中的一组接口提供一个一致的界面。
此模式定义了一个高层接口,使得这一子系统更加容易使用。
下面直接上代码
public class SubA {
public void MethodA()
{
System.out.println("子系统方法A被执行");
}
}
public class SubB {
public void MethodB()
{
System.out.println("子系统方法B被执行");
}
}
public class SubC {
public void MethodC()
{
System.out.println("子系统方法C被执行");
}
}
public class Facade {
private SubA suba;
private SubB subb;
private SubC subc;
public Facade(){
suba = new SubA();
subb = new SubB();
subc = new SubC();
}
public void MethodOne()
{
System.out.println("执行第一组方法:");
suba.MethodA();
subb.MethodB();
}
public void MethodTwo()
{
System.out.println("执行第二组方法:");
subc.MethodC();
subb.MethodB();
}
}
public class client {
public static void main(String[] args) {
// TODO Auto-generated method stub
Facade facade = new Facade();
facade.MethodOne();
facade.MethodTwo();
}
}
可以通过外观模式将数据层业务层等进行连接,当子系统的设计演变的越来越复杂的时候,外观模式也可以就此提供一个简单的接口来减少各个日益复杂的子系统之间的依赖。
外观模式适用于以下情况:
- 当需要为一个复杂的子系统提供一个简单的接口时
- 当客户端与抽象类的实现部分存在很大的依赖性是
- 当需要构建一个层次结构的子系统的时候。