外观模式实例-智能手机一键备份_某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以-程序员宅基地

技术标签: java  设计模式  

问题描述

某软件公司为新开发的智能手机控制与管理软件提供一键备份功能,通过该功能可以将原本存储在手机中的通讯录、短信、照片、音乐等资料一次性拷贝到移动存储介质中(例如:SD卡)中。在实现过程中需要与多个已有的类进行交互,如通讯录管理类、短信管理类。

结构图

在这里插入图片描述

编程实现

需要交互的类

public class ContactsManager {
    
    private String contacts;

    public ContactsManager(String contacts) {
    
        this.contacts = contacts;
    }

    public void copy(){
    
        System.out.println(contacts);
    }
}
public class MessageManager {
    
    private String message;

    public MessageManager(String message) {
    
        this.message = message;
    }
    public void copy(){
    
        System.out.println(message);
    }
}
public class PhotoManager {
    
    private String photo;

    public PhotoManager(String photo) {
    
        this.photo = photo;
    }
    public void copy(){
    
        System.out.println(photo);
    }
}

Facade类

public class Facade {
    
    private ContactsManager contacts;
    private MessageManager message;
    private PhotoManager photo;

    public Facade() {
    
        this.contacts = new ContactsManager("通讯录");
        this.message = new MessageManager("短信");
        this.photo=new PhotoManager("照片");
    }

    public void backup(){
    
        contacts.copy();
        message.copy();
        photo.copy();
    }
}

客户端

public class Client {
    
    public static void main(String[] args) {
    
        Facade facade=new Facade();
        facade.backup();
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shiaiao/article/details/118609101

智能推荐

在Linux系统编译DCMTK的源码得到其动态库文件和可执行程序_dicom动态库-程序员宅基地

文章浏览阅读2.2k次,点赞4次,收藏5次。Linux环境编译DCMTK源码,生成动态库文件和可执行文件_dicom动态库

详述 MySQL 导出数据遇到 secure-file-priv 的问题_mysql 导出select 数据 --secure-file-priv-程序员宅基地

文章浏览阅读416次。ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement.对于上述错误,相信对于第一次执行 MySQL 数据导出操作的同学大都会遇见。至于为什么会遇到这个错误,原因很简单,那就是:我们不知道 MySQL 默认的_mysql 导出select 数据 --secure-file-priv

P1433 吃奶酪 —(状压DP)_p1433状态dp-程序员宅基地

文章浏览阅读854次,点赞20次,收藏17次。状态压缩动态规划,就是我们俗称的状压DP,是利用计算机二进制的性质来描述状态的一种DP方式。一只小老鼠要把它们都吃掉,问至少要跑多少距离?输出一行一个实数,表示要跑的最少距离,保留。第一行有一个整数,表示奶酪的数量。行,每行两个实数,第。对于全部的测试点,保证。,两点之间的距离公式为。_p1433状态dp

编辑环境变量的path内容不展开问题_系统变量path点击编辑不展开怎么办-程序员宅基地

文章浏览阅读5.8k次,点赞28次,收藏37次。编辑环境变量的path内容不展开问题自己在修改环境变量时将%…开头的变量上移到了顶部,而系统默认的则是以C:\...开头的环境变量。如下所示:将红色框内的环境变量后移置C:\...之后,点击确定后再打开path内容就可以展开了。开头的环境变量向后移,以。_系统变量path点击编辑不展开怎么办

Python爬取B站TES VS FNC 八强赛弹幕,全网最具深度的三次握手、四次挥手讲解-程序员宅基地

文章浏览阅读451次,点赞23次,收藏17次。获得返回数据,可以利用正则匹配弹幕信息获取了弹幕信息保存到本地即可爬虫完整代码import rewith open(‘八强赛弹幕.txt’, mode=‘a’, encoding=‘utf-8’) as f:f.write(i)发现一共才 14行代码就搞定了~这只是爬取10月17日当天的弹幕数据,根据日期的变化可以改变日期参数,就可以达到爬取多页的数据了既然爬取了弹幕,就这样,还是有没有什么感觉,咱们可以对弹幕进行词云分析~词云图。

377-logger日志系统设计与实现_logger如何设计-程序员宅基地

文章浏览阅读652次,点赞2次,收藏2次。logger日志系统的设计图中画圆圈的是我们实现的mprpc框架,这个框架是给别人使用的,把本地的服务发布成远程的RPC服务,框架里最重要的两个成员就是RpcProvider和RpcChannel,他们在运行的过程中会有很多正常的输出信息和错误的信息,我们不可能都cout它们到屏幕上,因为运行时间长了,屏幕上输出的信息特别多,如果万一有什么问题,我们也不好定位,真正用起来的话不方便。所以,一般出问题,我们最直接的方式就是看日志!!!日志可以记录正常软件运行过程中出现的信息和错误的信息,当我们定位问题,_logger如何设计

随便推点

Zookeeper设置访问权限-程序员宅基地

文章浏览阅读1.2w次。[b][size=medium]zookeeper的身份认证有4种方式[/size][/b](1)world: 它下面只有一个id, 叫anyone, world:anyone代表任何人,zookeeper中对所有人有权限的结点就是属于world:anyone的 (2)auth: 它不需要id, 只要是通过authentication的user都有权限(zookeeper支持通过ker..._zookeeper 权限信息放哪里

SpringMVC——核心技术:异常处理(@ExceptionHandler、@ControllerAdvice)_spring @exceptionhandler message-程序员宅基地

文章浏览阅读8.7k次,点赞2次,收藏8次。SpringMVC——核心技术:异常处理(@ExceptionHandler、@ControllerAdvice)_spring @exceptionhandler message

操作系统文件系统实验报告16281027_i/o磁盘实验报告-程序员宅基地

文章浏览阅读3.6k次。实验五 文件系统1 实验简介本实验要求在模拟的I/O系统之上开发一个简单的文件系统。用户通过create, open, read等命令与文件系统交互。文件系统把磁盘视为顺序编号的逻辑块序列,逻辑块的编号为0至L − 1。2 I/O系统实际物理磁盘的结构是多维的:有柱面、磁头、扇区等概念。I/O系统的任务是隐藏磁盘的结构细节,把磁盘以逻辑块的面目呈现给文件系统。逻辑块顺序编号,编号取值范围为..._i/o磁盘实验报告

dwd明细粒度事实层设计_dwd层如何设计-程序员宅基地

文章浏览阅读1.8k次。目录1-数仓dwd事实层介绍2-数仓dwd层事实表设计原则3-数仓dwd层事实表设计规范4-建表示例1-数仓dwd事实层介绍明细粒度事实层以业务过程驱动建模,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。您可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理。公共汇总粒度事实层(DWS)和明细粒度事实层(DWD)的事实表作为数据仓库维度建模的核心,需紧绕业务过程来设计。通过获取描述业务过程的度量来描述业务过程,包括引用的维度和与业务过程有关的度量。度量通常为_dwd层如何设计

Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群视频完整版_ambari2.7.3 hadoop 部署-程序员宅基地

文章浏览阅读1.5k次。一、前言很多小伙伴也都知道,最近一直在做 Ambari 集成自定义服务的教学笔记和视频。之前在准备 Ambari 环境的时候,考虑到有朋友会在 Ambari 安装部署时遇到问题,所以贴心的我呢,就在搭建 Ambari 环境的时候,把这个视频录制好了,总共时长共 87 分钟,将近1个半小时,附带移除 SmartSense 服务及 FAQ 。也提前介绍一下搭建好的 Ambari 相关版本信息:..._ambari2.7.3 hadoop 部署

使用R语言保存CSV文件_r软件保存为csv文件-程序员宅基地

文章浏览阅读881次。本文介绍了如何使用R语言保存CSV文件。我们使用write.csv函数将数据框保存为CSV格式。您只需提供要保存的数据对象和文件路径,即可轻松创建CSV文件。CSV文件是一种通用的数据交换格式,在数据分析和数据处理中广泛使用。希望本文对您有所帮助,祝您在R语言中保存CSV文件时顺利进行数据处理和分析!_r软件保存为csv文件