写点什么

设计模式的艺术 第十三章外观设计模式练习(为新开发的智能手机控制与管理软件提供一键备份功能。通过该功能可以将原本存储在手机中的通讯录、短信、照片、歌曲等资料一次性地全部复制到移动存储介质(如 MMC 卡或 SD 卡)中。实现过程中需要与多个已有的类进行交互)

作者:代廉洁
  • 2022 年 9 月 03 日
    浙江
  • 本文字数:1198 字

    阅读完需:约 4 分钟

Sunny 软件公司为新开发的智能手机控制与管理软件提供了一键备份功能。通过该功能可以将原本存储在手机中的通讯录、短信、照片、歌曲等资料一次性地全部复制到移动存储介质(如 MMC 卡或 SD 卡)中。在实现过程中需要与多个已有的类进行交互,例如通讯录管理类、短信管理类等。为了降低系统的耦合性,试使用外观模式来设计并实现该一键备份功能。


一、类结构图



外观角色类:设计为名称为 CopyFacade 的具体类,面向子系统角色类编程,包含具体一键备份方法 oneKeyCopy(),持有具体通讯录管理类 NumberBookManager、具体短信管理类 SmsManager、具体照片管理类 PhotoManager、具体歌曲管理类 SongManager 的引用;

子系统角色类:包括具体通讯录管理类 NumberBookManager、具体短信管理类 SmsManager、具体照片管理类 PhotoManager、具体歌曲管理类 SongManager,分别实现具体通讯录备份方法 copyNumberBook()、具体短信备份方法 copySms()、具体照片备份方法 copyPhoto()、具体歌曲备份方法 copySong()。


二、典型实现代码

具体备份功能外观类:外观角色类
// 具体备份功能外观类:外观角色类public class CopyFacade {    private NumberBookManager numberBookManager;    private SmsManager smsManager;    private PhotoManager photoManager;    private SongManager songManager;
public CopyFacade() { this.numberBookManager = new NumberBookManager(); this.smsManager = new SmsManager(); this.photoManager = new PhotoManager(); this.songManager = new SongManager(); }
public void oneKeyCopy() { numberBookManager.copyNumberBook(); smsManager.copySms(); photoManager.copyPhoto(); songManager.copySong(); }}
复制代码


具体通讯录管理类:子系统角色类
// 具体通讯录管理类:子系统角色类public class NumberBookManager {    public void copyNumberBook() {        System.out.println("复制通讯录");    }}
复制代码


具体短信管理类:子系统角色类
// 具体短信管理类:子系统角色类public class SmsManager {    public void copySms() {        System.out.println("复制短信");    }}
复制代码


具体照片管理类:子系统角色类
// 具体照片管理类:子系统角色类public class PhotoManager {    public void copyPhoto() {        System.out.println("复制照片");    }}
复制代码


具体歌曲管理类:子系统管理类
// 具体歌曲管理类:子系统管理类public class SongManager {    public void copySong() {        System.out.println("复制歌曲");    }}
复制代码


客户端代码:
public class Client {    public static void main(String[] args) {        CopyFacade copyFacade = new CopyFacade();        copyFacade.oneKeyCopy();    }}
复制代码


编译并运行程序,输出如下结果:
复制通讯录复制短信复制照片复制歌曲
复制代码


发布于: 刚刚阅读数: 3
用户头像

代廉洁

关注

还未添加个人签名 2019.10.15 加入

还未添加个人简介

评论

发布
暂无评论
设计模式的艺术 第十三章外观设计模式练习(为新开发的智能手机控制与管理软件提供一键备份功能。通过该功能可以将原本存储在手机中的通讯录、短信、照片、歌曲等资料一次性地全部复制到移动存储介质(如MMC卡或SD卡)中。实现过程中需要与多个已有的类进行交互)_设计模式的艺术_代廉洁_InfoQ写作社区