结构型设计模式之外观模式实验–给系统提供一个文件加密模块
- 对外观模式的理解:
在外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户端与子系统内部复杂性分隔开,使得客户端只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。外观模式中所指的子系统是一个广义的概念,它可以使一个类,一个功能模块、系统的一个组成部分或者一个完整的系统。子系统通常是一些业务类,实现了一些具体的、独立的业务功能。由于在外观类中维持了对子系统对象的引用,客户端可以通过外观类来间接调用子系统对象的业务方法,而无需与子系统对象进行直接交互。在引入外观类之后,客户端代码变得非常简单。
总之,外观模式,就是不让客户端知道子系统复杂的实现逻辑,减少客户类的所需处理对象的数目,并是子系统使用起来更加容易,让客户类和子系统实现松耦合的关系。
-
实验目的:
某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块。 -
UML类图自己动手画,此实验必备元素,绘制流程看我实验一:UML如何用WPS完成
-
本实验实现代码如下:
FileReader:文件读取类,充当子系统类,用于读取文件。
package practice03;
import java.io.*;
public class FileReader {
public String Read(String fileNameSrc) {
System.out.println("读取文件,获取明文");
StringBuffer sb = new StringBuffer(); //创建一个新的变量
try {
FileInputStream inFs = new FileInputStream(fileNameSrc);
int data;
try {
while ((data = inFs.read()) != -1