FACADE 门面(外观)模式

门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。(简单来说就是简化了操作,传递某个特定参数就可以执行,其他用默认)

我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我拍张照片了。

示例代码

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <locale.h>//输出到屏幕
void print(wchar_t *str)
{wprintf(L"%ls\n", str);
}//对话框显示
void show(wchar_t *str)
{MessageBoxW(NULL, L"i love you", str, NULL);
}//外观模式
void apparence(int i)
{POINT pos;while (1){//设置中文setlocale(LC_ALL, "zh-CN");GetCursorPos(&pos);//根据鼠标位置获取句柄HWND hwnd = WindowFromPoint(pos);wchar_t str[100] = { 0 };//读取文本GetWindowTextW(hwnd, str, 100);if (i == 0){print(str);}else if (i == 1){show(str);}Sleep(1000);}}void main()
{apparence(0);
}

转载于:https://www.cnblogs.com/xiaochi/p/8531610.html

2.泡妞与设计模式(三) 外观模式相关推荐

  1. 7.泡妞与设计模式(八)模板模式

    TEMPLATE METHOD 模板模式 模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方 ...

  2. 0.泡妞与设计模式(一)工厂模式

    工厂模式: 客户类和工厂类分开.消费者任何时候需要某种产品,只需向工厂请求即可.消费者无须修改就可以接纳新产品.缺点是当产品修改时,工厂类也要做相应的修改.如:如何创建及如何向客户端提供.(简洁来说就 ...

  3. 6.泡妞与设计模式(七)策略模式

    STRATEGY 策略模式 策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换.策略模式使得算法可以在不影响到客户端的情况下发生变化.策略模把行为和环 ...

  4. Swift 中的设计模式 #3 外观模式与适配器模式

    作者:Andrew Jaffee,原文链接,原文日期:2018-09-04 译者:郑一一:校对:BigNerdCoding,pmst,Forelax:定稿:Forelax 本文是我的设计模式系列教程的 ...

  5. 移动开发 | Swift 中的设计模式 #3 外观模式与适配器模式

    本文是我的设计模式系列教程的第三篇.在第一篇文章中,我介绍了 创建型模式中的工厂模式和单例模式.在第二篇文章中,又讨论了一下 行为型模式中的观察者模式和备忘录模式. 在本文中,我会就结构型模式中的外观 ...

  6. [设计模式C++]外观模式

    系列文章总结一些比较常见的设计模式,外观模式是由GoF提出的23种设计模式的一种,使用非常简单. 2021-09-16 增加一个例子 区别于代理模式,都像是插入第三者,但是外观模式是统筹管理子系统,就 ...

  7. 研磨设计模式之外观模式(Facade)(解决方案)

    3.2  解决方案 3.2.1  外观模式来解决 用来解决上述问题的一个合理的解决方案就是外观模式.那么什么是外观模式呢? (1)外观模式定义 这里先对两个词进行一下说明,一个是界面,一个是接口. 界 ...

  8. JS常用的设计模式(7)—— 外观模式

    JS常用的设计模式(7)-- 外观模式 外观模式(门面模式),是一种相对简单而又无处不在的模式.外观模式提供一个高层接口,这个接口使得客户端或子系统更加方便调用. 用一段再简单不过的代码来表示 var ...

  9. Javascript 设计模式之外观模式【讲师辅导】-曾亮-专题视频课程

    Javascript 设计模式之外观模式[讲师辅导]-770人已学习 课程介绍         随着 javascript ES6/7 的发布,很多老版本的设计模式的实现,今天来看是错误的,将被彻底. ...

  10. 如何让孩子爱上设计模式 ——11.外观模式(Facade Pattern)

    如何让孩子爱上设计模式 --11.外观模式(Facade Pattern) 标签: 设计模式初涉 场景引入 相信各位玩过LOL英雄联盟游戏的童鞋,对下面两个英雄都不会陌生吧:       分别是瑞雯和 ...

最新文章

  1. 如何用java使用POI读取excel文件,创建excel文件,实现批量导出和导入
  2. 利用Python进行数据分析-07-汇总和计算描述统计
  3. lucene两个分页操作
  4. mysql修改校对集_MySQL 图文详细教程之校对集问题
  5. 【BZOJ1965】【codevs1446】洗牌,快速幂+扩展欧几里德
  6. 记录开发移动端项目过程中的各种问题、插件及教程(不定时更新)
  7. 「leetcode」本周小结!(回溯算法系列二)
  8. Linux下常用组的权限特点,Linux中的用户与用户组
  9. ppt制作弹跳的小球动画效果_PPT制作弹跳的小球动画效果实例教程
  10. 毕业半年,点滴在心中
  11. 拆解 米家扫地机器人_1699元!小米米家扫地机器人拆解:真复杂
  12. c语言中文网GUI,golang gui介绍
  13. 中国LVDT RVDT传感器市场现状研究分析与发展前景预测报告(2022)
  14. 数字录音系统服务器,IP数字网络广播控制中心服务器
  15. 题目选自《第八届图灵杯》-------买花
  16. cad2012打开后闪退_为什么CAD2012一打开就闪退啊。求大神解答
  17. Windows XP注册表信息
  18. Java程序是如何运行的
  19. 大学生网页作业之-个人主页、校园网站
  20. linux系统查看网口流量,linux 查看网口流量

热门文章

  1. 彻底理解程序为什么会超时
  2. poj 1511 Invitation Cards spfa 基础题!!虽然我做的比较坎坷!!可以练手啊!!
  3. poj Shortest Prefixes ——trie树、字典树,基础!!
  4. indesign入门教程,如何添加文字?
  5. 如何从PDF中删除页面?
  6. 如何设置Mac定时重启
  7. 如何恢复Mac上已删除的文件?
  8. Python3实现旋转数组的3种算法 1
  9. Flutter实战:手把手教你写Flutter Plugin
  10. 【排错】exchange2013不能显示所有OU