一.实例说明:
某系统需要提供一个文件加密模块,加密流程包含三个操作,分别是读取源文件,加密,保存文件之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的外观加密类,用户可以直接使用该加密外观类完成文件的读取,加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块
二.实例类图:
代码;
package child;
class CipherMachine:
public class CipherMachine
{
public String encrypt(String plainText)
{
return plainText;
}
}
class FileReader:
public class FileReader
{
public String read(String fileNameSrc)
{
return fileNameSrc;
}
}
class FileWriter:
public class FileWriter
{
public void write(String encryptText,String fileNameDes)
{
System.out.println(encryptText);
System.out.println(fileNameDes);
}
}
package parent;
class EncryptFacade:
import child.CipherMachine;
import child.FileReader;
import child.FileWriter;
public class EncryptFacade
{
private FileReader reader;
private CipherMachine cipher;
private FileWriter writer;
public EncryptFacade()
{
reader=new FileReader();
cipher=new CipherMachine();
writer=new FileWriter();
}
public void fileEncrypt(String fileNameSrc,String fileNameDes)
{
String plainStr=reader.read(fileNameSrc);
String encryptStr=cipher.encrypt(plainStr);
writer.write(encryptStr, fileNameDes);
}
}
package Client;:
class Client:
import parent.EncryptFacade;
public class Client
{
public static void main(String args[])
{
EncryptFacade ef=new EncryptFacade();
ef.fileEncrypt("444", "555");
}
}