外观模式是我们封装API的常用手段,比如在我们开发各种SDk的时候。
外观模式定义: 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,外观模式提供一个高层次的接口,使得子系统更加易于使用
UML图:
实例代码实现
系统A定义
public interface ISystemA {
/**
* 系统A的一些内部操作
*/
public void operate();
}
系统A实现
public class SystemAImpl implements ISystemA {
@Override
public void operate() {
System.out.println("系统A的内部操作!");
}
}
系统B定义
public interface ISystemB {
/**
* 系统B的一些内部操作
*/
public void operate();
}
系统B实现
public class SystemBImpl implements ISystemB {
@Override
public void operate() {
System.out.println("系统B的内部操作!");
}
}
系统C定义
public interface ISystemC {
/**
* 系统C的一些内部操作
*/
public void operate();
}
系统C实现
public class SystemCImpl implements ISystemC {
@Override
public void operate() {
System.out.println("系统C的内部操作");
}
}
系统封装统一对外提供接口
/**
* 各个系统统一对外暴露的一个face类
*/
public class Facede {
private ISystemA mSystemA = new SystemAImpl();
private ISystemB mSystemB = new SystemBImpl();
private ISystemC mSystemC = new SystemCImpl();
public void operateA(){
mSystemA.operate();
}
public void operateB(){
mSystemB.operate();
}
public void operateC(){
mSystemC.operate();
}
}
代码操作
public static void main(String[] args) {
Facede facede = new Facede();
//操作系统A
facede.operateA();
//操作系统B
facede.operateB();
//操作系统C
facede.operateC();
}
好了外观设计模式到此结束系统对你有帮助!