设计模式的艺术 第十三章外观设计模式练习(为新开发的智能手机控制与管理软件提供一键备份功能。通过该功能可以将原本存储在手机中的通讯录、短信、照片、歌曲等资料一次性地全部复制到移动存储介质(如 MMC 卡或 SD 卡)中。实现过程中需要与多个已有的类进行交互)
Sunny 软件公司为新开发的智能手机控制与管理软件提供了一键备份功能。通过该功能可以将原本存储在手机中的通讯录、短信、照片、歌曲等资料一次性地全部复制到移动存储介质(如 MMC 卡或 SD 卡)中。在实现过程中需要与多个已有的类进行交互,例如通讯录管理类、短信管理类等。为了降低系统的耦合性,试使用外观模式来设计并实现该一键备份功能。
一、类结构图
外观角色类:设计为名称为 CopyFacade 的具体类,面向子系统角色类编程,包含具体一键备份方法 oneKeyCopy(),持有具体通讯录管理类 NumberBookManager、具体短信管理类 SmsManager、具体照片管理类 PhotoManager、具体歌曲管理类 SongManager 的引用;
子系统角色类:包括具体通讯录管理类 NumberBookManager、具体短信管理类 SmsManager、具体照片管理类 PhotoManager、具体歌曲管理类 SongManager,分别实现具体通讯录备份方法 copyNumberBook()、具体短信备份方法 copySms()、具体照片备份方法 copyPhoto()、具体歌曲备份方法 copySong()。
二、典型实现代码
具体备份功能外观类:外观角色类
复制代码
具体通讯录管理类:子系统角色类
复制代码
具体短信管理类:子系统角色类
复制代码
具体照片管理类:子系统角色类
复制代码
具体歌曲管理类:子系统管理类
复制代码
客户端代码:
复制代码
编译并运行程序,输出如下结果:
复制代码
版权声明: 本文为 InfoQ 作者【代廉洁】的原创文章。
原文链接:【http://xie.infoq.cn/article/5c4d409d147bdb2a9bbdac728】。文章转载请联系作者。
评论