Java设计模式——外观模式(门面模式)(Facade)

外观模式意图为子系统提供一个接口,方便使用
外观类、工具类和示例类
外观类可能全是静态方法
示例类展示如何使用类和子系统
示例类和外观类的区别:
1、示例类通常是单独运行的应用程序,而外观类不是
2、示例类包含了样例数据,外观类没有
3、外观类通常是可配的,示例类不是
4、外观类的意图是为了重用,示例类不是
5、外观类用在产品代码中,示例类不是
Java中外观类比较少,原因是
1、Java开发者通常要求对库中的工具做整体的了解,外观模式可能会限制这种运用系统方式。
2、Java类库提供的外观类很少。
Java设计模式——外观模式(门面模式)(Facade)_第1张图片

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("文件加密", "外观模式");
    }

我只需要调用封装好方法,并给用户提供可用的接口,至于接口里面的方法是怎么实现不需要展示给用户。

你可能感兴趣的:(java设计模式,深入浅出设计模式)