结构型设计模式之外观模式实验--给系统提供一个文件加密模块

本文介绍了结构型设计模式中的外观模式,旨在为系统提供一个文件加密模块。外观模式通过一个统一的外观类隔离客户端与子系统的复杂交互,简化客户端代码。实验中,文件加密流程包括读取、加密和保存三个独立操作,分别由FileReader、CipherMachine和FileWriter三个类实现,通过EncryFacade外观类进行统一调用。客户端只需与EncryFacade交互即可完成文件加密,实现了子系统与客户端的松耦合。
摘要由CSDN通过智能技术生成

结构型设计模式之外观模式实验–给系统提供一个文件加密模块

  • 对外观模式的理解:

在外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户端与子系统内部复杂性分隔开,使得客户端只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。外观模式中所指的子系统是一个广义的概念,它可以使一个类,一个功能模块、系统的一个组成部分或者一个完整的系统。子系统通常是一些业务类,实现了一些具体的、独立的业务功能。由于在外观类中维持了对子系统对象的引用,客户端可以通过外观类来间接调用子系统对象的业务方法,而无需与子系统对象进行直接交互。在引入外观类之后,客户端代码变得非常简单。
总之,外观模式,就是不让客户端知道子系统复杂的实现逻辑,减少客户类的所需处理对象的数目,并是子系统使用起来更加容易,让客户类和子系统实现松耦合的关系。

  • 实验目的:
    某系统需要提供一个文件加密模块,加密流程包括三个操作,分别是读取源文件、加密、保存加密之后的文件。读取文件和保存文件使用流来实现,这三个操作相对独立,其业务代码封装在三个不同的类中。现在需要提供一个统一的加密外观类,用户可以直接使用该加密外观完成文件的读取、加密和保存三个操作,而不需要与每一个类进行交互,使用外观模式设计该加密模块。

  • 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值