10、设计模式应用举例:外观模式:解析文件

发布时间:2026/10/18 14:09:12
10、设计模式应用举例:外观模式:解析文件 目录一、关于外观模式二、设计要求三、设计实现1.子系统2.外观四、应用程序五、执行结果一、关于外观模式设计模式10、外观模式_外观模式uml-CSDN博客二、设计要求设计一个子系统该子系统有三个类ReadFile、AnalyzeInformation和SaveFile类各个类的职责如下ReadFile类的实例可以读取文本文件AnalyzeInformation类的实例可以从一个文本文件中删除用户不需要的内容SaveFile类的实例能将一个文本保存到文本文件请为上述子系统设计一个外观以便简化用户和上述子系统所进行的交互。三、设计实现1.子系统ReadFile.javapackage xyz.jangle.design.app.facade; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; /** * 读取文本文件内容的类 * author jangle * email janglejangle.xyz * time 2026年10月16日 上午9:38:11 * */ public class ReadFile { public String readFileContent(String fileName) { StringBuffer sb new StringBuffer(); try(BufferedReader read new BufferedReader(new FileReader(fileName))){ String s; while((sread.readLine()) ! null) { sb.append(s); sb.append(\n); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } }AnalyzeInformation.javapackage xyz.jangle.design.app.facade; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * author jangle * email janglejangle.xyz * time 2026年10月16日 上午9:43:30 * */ public class AnalyzeInformation { /** * 从content中删除指定文本并返回删除后的文本。 * * author jangle * time 2026年10月16日 上午9:47:56 * param content * param deleteContent * return */ public String getSavedContent(String content,String deleteContent) { Pattern p; Matcher m; p Pattern.compile(deleteContent); m p.matcher(content); String saveContent m.replaceAll(); return saveContent; } }WriteFile.javapackage xyz.jangle.design.app.facade; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.io.StringReader; /** * author jangle * email janglejangle.xyz * time 2026年10月16日 上午9:48:49 * */ public class WriteFile { /** * 将文本内容写入到指定文件 * * author jangle * time 2026年10月16日 上午9:57:08 * param fileName * param content */ public void writeToFile(String fileName,String content) { try(BufferedReader read new BufferedReader(new StringReader(content)); BufferedWriter write new BufferedWriter(new FileWriter(fileName))){ String s null; while((s read.readLine()) ! null) { write.write(s); write.newLine(); write.flush(); } } catch (IOException e) { e.printStackTrace(); } } }2.外观本问题的外观是ReadAndWriteFacade类该类的实例含有ReadFile,AnalyzeInformation和SaveFile类的实例引用。package xyz.jangle.design.app.facade; /** * author jangle * email janglejangle.xyz * time 2026年10月16日 上午10:00:23 * */ public class ReadAndWriteFacade { private ReadFile readFile; private AnalyzeInformation analyzeInformation; private WriteFile writeFile; public ReadAndWriteFacade() { readFile new ReadFile(); analyzeInformation new AnalyzeInformation(); writeFile new WriteFile(); } /** * 读取指定文件的内容删除内容中的指定类型文本再保存修改后的文本到指定文件中 * * author jangle * time 2026年10月16日 上午10:06:08 * param readFileName * param delContent * param savedFileName */ public void doOption(String readFileName,String delContent,String savedFileName) { String content readFile.readFileContent(readFileName); System.out.println(原内容); System.out.println(content); String savedContent analyzeInformation.getSavedContent(content, delContent); writeFile.writeToFile(savedFileName, savedContent); System.out.println(替换后的内容); System.out.println(savedContent); } }四、应用程序package xyz.jangle.design.app.facade; /** * author jangle * email janglejangle.xyz * time 2026年10月16日 上午10:07:25 * */ public class Application { public static void main(String[] args) { String path src/xyz/jangle/design/app/facade; String sourceFile path/index.html; String targetFile path/save.txt; ReadAndWriteFacade facade new ReadAndWriteFacade(); facade.doOption(sourceFile, [^]*, targetFile); } }五、执行结果

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询