结构型模式
--- 外观模式 ---
内容:为子系统中的一组接口提供一个一致的界面外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用角色:1. 外观 (facade)2. 子系统类 (Subsystem Classes)优点:1. 减少系统相互依赖2. 提高了灵活性3. 提高了安全性
class CPU(object):def run(self):print('CPU开始运行')def stop(self):print('CPU停止运行')class Disk(object):def run(self):print('硬盘开始工作')def stop(self):print('硬盘停止工作')class Memory(object):def run(self):print('内存通电')def stop(self):print('内存断电')class Computer(object):"""外观 (facade)"""def __init__(self):self.cpu = CPU()self.disk = Disk()self.memory = Memory()def run(self):self.cpu.run()self.disk.run()self.memory.run()def stop(self):self.cpu.stop()self.disk.stop()self.memory.stop()# --- Client ---
c = Computer()
c.run()
c.stop()

4.11_facade_结构型模式:外观模式相关推荐

  1. Java设计模式之结构型:外观模式

    一.什么是外观模式: 外观模式通过对客户端提供一个统一的接口,用于访问子系统中的一群接口.使用外观模式有以下几点好处: (1)更加易用:使得子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要 ...

  2. JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式

    JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...

  3. Java设计模式之结构型:组合模式

    前言: 我们对于上面两幅图片肯定非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构.在数据结构中我们知道可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可 ...

  4. Java设计模式之结构型:代理模式

    前言: 我们一般在租房子时会去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做:再比如我们打官司需要请律师,因为律师在法律方面有专长,可以替我们进行操作,表达我们 ...

  5. Java设计模式之结构型:桥接模式

    一.什么是桥接模式: 桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯,桥接模式的作用就是为被分离的抽象部分和实现部分搭桥.在现实生活中一个物品在搭配不同的配件时会产生不同的动作和结果, ...

  6. 《设计模式详解》结构型模式 - 外观模式

    外观模式 5.5 外观模式 5.5.1 概述 5.5.2 结构 5.5.3 案例 5.5.4 使用场景 5.5.5 Tomcat 源码 完整的笔记目录:<设计模式详解>笔记目录,欢迎指点! ...

  7. 设计模式(18):结构型-享元模式(Flyweight)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  8. 结构型-享元模式-02-实例实现(围棋)

    结构型-享元模式-02-实例实现 1. 棋子抽象类(享元抽象类): 2. 白棋子(具体享元类): 3. 黑棋子(具体享元类): 4. 棋子坐标类(外部状态) 5. 享元工厂类 6. 客户端测试 7. ...

  9. 设计模式(装饰者模式外观模式代理模式)

    目录 装饰者模式 介绍 实现 外观模式 介绍 实现 代理模式 介绍 实现 装饰者模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设 ...

最新文章

  1. linux下串口通信程序,关于Linux下串口通信的一点心得
  2. for循环一定要指定键么 vue_第 2 篇:上手 Vue 展示 todo 列表
  3. PHP程序性能优化的50种方法
  4. ACCESS中不支持left join解决方案
  5. 程序员职业自由6个阶段,你处于哪个?
  6. MySQL的Limit子句
  7. 搜狐创始人张朝阳操起“老本行”:居然开物理课了
  8. Strategy模式的一点思考
  9. BPC电波授时信号的“零成本”伪造
  10. Ubuntu安装蓝牙驱动
  11. 树莓派CM4_Tiny(双HDMI)扩展板基于Retropie的游戏配置操作演示
  12. three.js 法线贴图
  13. LeetCode1619删除某些元素后的数组均值(java)
  14. Excel中快速填充产生连续的数字编号
  15. 会议室预约微信小程序推荐_会议室预约微信小程序开发
  16. element-ui el-table 表格渲染错位以及高度计算错误问题
  17. java 队列线程池_JAVA工作队列与线程池
  18. Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3
  19. Chapter 19 稳恒磁场
  20. 算法91----切绳子

热门文章

  1. python for和while的用法区别_详解python while 函数及while和for的区别
  2. 金华资产封存页面问题
  3. DVR服务器如何装系统,车载监控dvr如何配置服务器
  4. 装完机,启grub+Linux,linux一路填坑...
  5. boot入门思想 spring_微服务架构之SpringBoot详解,夯实底层知识,带你轻松入门开发...
  6. python3.7.4安装pip_python3.7下pip的安装教程
  7. 如何实现按钮水平居中
  8. Java把时间毫秒数转换成日期和时间
  9. java中 Double和double区别
  10. 以虚拟现实骨灰级开发者视角,来看VR智能硬件平台