代码拉取完成,页面将自动刷新
门面模式(外观模式)是一种结构型设计模式,能为程序库、框架或其他复杂类提供一个简单的接口。
优点:
缺点:
public class Facade {
/**
* 传入数据,生成 PDF 文件
*/
public static DataPdf getPdfData(Data data) {
// 数据通过模板引擎生成 word
// 即数据通过模板引擎,套用模板文件(模板.docx)生成出一个新的word文件
DataWord dataWord = new DataWord(data, "./xxx/xxxx/模板.docx");
// word 转换成 PDF
DataPdf dataPdf = new DataPdf(dataWord);
// PDF 进行加密处理
dataPdf.encrypt("asd123!@#");
return dataPdf;
}
}
public class Data {
private String title;
private String content;
// ... 省略 get set
}
public class DataWord {
private String title;
private String content;
private String template;
public DataWord(Data data,String template) {
this.title = data.getTitle();
this.content = data.getContent();
this.template = template;
}
//... 省略 get
}
public class DataPdf {
private String title;
private String content;
private String pwd;
public DataPdf(DataWord word) {
this.title = word.getTitle();
this.content = word.getContent();
}
public void encrypt(String pwd) {
this.pwd = pwd;
System.out.println("对当前文档进行加密,密码:" + pwd);
}
//... 省略 get
}
测试代码
public class FacadeTest {
@Test
public void test() {
Data data = new Data();
data.setTitle("标题");
data.setContent("内容");
DataPdf pdfData = Facade.getPdfData(data);
Assertions.assertEquals("标题",pdfData.getTitle());
Assertions.assertEquals("内容",pdfData.getContent());
Assertions.assertEquals("asd123!@#",pdfData.getPwd());
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。