设计模式的艺术 第九章适配器设计模式练习(OA 系统需要提供一个加密模块,将用户机密信息(例如口令、邮箱)加密再存储在数据库,系统已经定义好数据库操作类。为了提高开发效率,现需要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代码)
Sunny 软件公司 OA 系统需要提供一个加密模块,将用户机密信息(例如口令、邮箱等)加密后再存储在数据库中,系统已经定义好了数据库操作类。为了提高开发效率,现需要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代码。试使用适配器模式设计该加密模块,实现在不修改现有类的基础上重用第三方加密方法。
一、类结构图
抽象目标类:设计为名称为 DataEncryptor 抽象类,包含抽象方法 encryptData(String str);
适配器类:设计为抽象目标类 DataEncryptor 的子类,设计为名称为 DataEncryptorAdapter 的具体类,持有一个适配者类 Encryptor 的引用,实现抽象方法 encryptData(String str);
适配者类:设计为名称为 Encryptor 的具体类,实现具体方法 encrypt(String str)。
二、典型实现代码
抽象数据加密类:抽象目标类
复制代码
数据加密适配器类:具体适配器类
复制代码
第三方数据加密类:具体适配者类
复制代码
客户端代码:
复制代码
编译并运行程序,输出以下结果:
复制代码
版权声明: 本文为 InfoQ 作者【代廉洁】的原创文章。
原文链接:【http://xie.infoq.cn/article/0950ec95626aa2337b2e0232d】。文章转载请联系作者。
评论