外观模式意图为子系统提供一个接口,方便使用
外观类、工具类和示例类
外观类可能全是静态方法
示例类展示如何使用类和子系统
示例类和外观类的区别:
1、示例类通常是单独运行的应用程序,而外观类不是
2、示例类包含了样例数据,外观类没有
3、外观类通常是可配的,示例类不是
4、外观类的意图是为了重用,示例类不是
5、外观类用在产品代码中,示例类不是
Java中外观类比较少,原因是
1、Java开发者通常要求对库中的工具做整体的了解,外观模式可能会限制这种运用系统方式。
2、Java类库提供的外观类很少。
public class EncryptFacade {
private FileReader reader;
private FileWriter writer;
private CipherMachine cipher;
public EncryptFacade(){
reader = new FileReader();
writer = new FileWriter();
cipher = new CipherMachine();
}
public void fileEncrypt(String fileNameSrc,String fileNameDesc){
String plainStr = reader.read(fileNameSrc);
String encryptStr = cipher.encrypt(plainStr);
writer.writer(encryptStr,fileNameDesc);
}
}
/**
* @author 付玉伟
* @time 2015-2-7 上午11:26:09
* @param args
*/
public static void main(String[] args) {
EncryptFacade facade = new EncryptFacade();
facade.fileEncrypt("文件加密", "外观模式");
}
我只需要调用封装好方法,并给用户提供可用的接口,至于接口里面的方法是怎么实现不需要展示给用户。