- 浏览: 369973 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (335)
- C++ (190)
- 设计模式 (43)
- 数据库技术 (5)
- 网络编程 (11)
- 自动化测试 (6)
- Linux (13)
- OpenSSL (10)
- MS Crypt API (5)
- SCM (2)
- English (4)
- Android (10)
- EMV规范 (1)
- Saturn Platform (0)
- C (10)
- SQL (2)
- ASP.NET (3)
- 英语口语学习 (3)
- 调试工具 (21)
- 编译技术 (5)
- UML (1)
- 项目管理 (5)
- 敏捷开发 (2)
- Http Server (6)
- 代码审查、代码分析 (5)
- 面试基础 (10)
- 重点知识 (16)
- STL (6)
- Efficient C++资料 (8)
- 数据结构和算法 (7)
- 读书笔记 (0)
- 开源项目 (4)
- 多线程 (2)
- Console App (6)
- 个人开源项目 (4)
- IBM DevelopWorks (4)
- Java (16)
- 内存泄漏相关调试和检测 (13)
- 软件测试相关技术 (2)
- C# (11)
- Apple Related (1)
- 软件测试和管理 (2)
- EMV (1)
- Python (1)
- Node.js (6)
- JavaScript (5)
- VUE (1)
- Frontend (1)
- Backend (4)
- RESTful API (3)
- Firebase (3)
最新评论
-
u013189503:
来个密码吧
[C++][Logging] 项目中写日志模块的实现 -
wyf_vc:
来个密码啊!!
[C++][Logging] 项目中写日志模块的实现
头文件
//FacadePattern.h #ifndef FACADE_PATTERN_H #define FACADE_PATTERN_H #include <Windows.h> #include <iostream> using namespace std; namespace FacadePattern { /* ** FileName : FacadePatternDemo ** Author : Jelly Young ** Date : 2014/1/2 ** Description : More information, please go to http://www.jellythink.com */ // 语法分析子系统 class CSyntaxParser { public: void SyntaxParser(); }; // 生成中间代码子系统 class CGenMidCode { public: void GenMidCode(); }; // 生成汇编代码子系统 class CGenAssemblyCode { public: void GenAssemblyCode(); }; // 链接生成可执行应用程序或库子系统 class CLinkSystem { public: void LinkSystem(); }; class Facade { public: void Compile(); }; ////////////////////////////////////////////////////////////////////////// void FacadePattern_Test(); } #endif
实现
#include "FacadePattern.h" namespace FacadePattern { void CSyntaxParser::SyntaxParser() { cout<<"Syntax Parser"<<endl; } void CGenMidCode::GenMidCode() { cout<<"Generate middle code"<<endl; } void CGenAssemblyCode::GenAssemblyCode() { cout<<"Generate assembly code"<<endl; } // 链接生成可执行应用程序或库子系统 void CLinkSystem::LinkSystem() { cout<<"Link System"<<endl; } void Facade::Compile() { CSyntaxParser syntaxParser; CGenMidCode genMidCode; CGenAssemblyCode genAssemblyCode; CLinkSystem linkSystem; syntaxParser.SyntaxParser(); genMidCode.GenMidCode(); genAssemblyCode.GenAssemblyCode(); linkSystem.LinkSystem(); } ////////////////////////////////////////////////////////////////////////// void FacadePattern_Test() { Facade facade; facade.Compile(); } }
客户端
#include "FacadePattern.h" #include <iostream> using namespace std; using namespace FacadePattern; void main() { FacadePattern_Test(); }
运行结果
- FacadePattern.zip (1.1 KB)
- 下载次数: 0
- Diagram.zip (590.2 KB)
- 下载次数: 0
- Diagram-raw.zip (387.1 KB)
- 下载次数: 0
发表评论
-
FreeRTOS
2022-03-05 16:31 248Ref https://blog.csdn.net/weix ... -
串口通讯相关
2018-11-02 13:44 411https://bbs.csdn.net/wap/topics ... -
[转]C++验证IP是否可以PING通
2018-10-30 17:54 1325https://www.cnblogs.com/guoyz13 ... -
C++/MFC 換皮膚
2018-10-20 11:05 477https://blog.csdn.net/u01123991 ... -
WinCE 截屏 - C++ 代碼
2018-08-31 09:45 574// this function create a bmp ... -
Android NDK搭建環境
2017-11-27 13:25 580https://www.cnblogs.com/ut2016- ... -
8583协议相关
2017-10-17 13:38 5738583相关资料,整理中... -
Java高级应用之JNI
2017-06-19 09:00 600参考link http://www.cnblogs.com/l ... -
C++实现ping功能
2017-04-18 11:21 2155基础知识 ping的过程是向目的IP发送一个type=8的I ... -
OpenSSL 编译环境搭建
2017-03-27 15:01 9061 安裝VS2008到 c:\Program Files (x ... -
最优非对称加密填充(OAEP)
2017-03-25 14:53 1582OpenSSL命令---rsautl http://blog. ... -
[Platform Builder] 设置SVM OS build Env
2016-11-10 11:39 01 copy one OSDesign Project to ... -
[Windows] System Error Codes(GetLastError )0-----5999
2016-10-26 13:28 1881ERROR_SUCCESS 0 (0x0) T ... -
开源Windows驱动程序框架
2016-09-17 21:35 871转自 http://code.csdn.net/news/28 ... -
c/c++代码中执行cmd命令
2016-09-14 14:50 1908转自 http://blog.csdn.net/slixinx ... -
C#使用C++标准DLL实例(包含callback)
2016-09-11 19:44 1086C++编写标准Win32DLL如下 头文件 /***** ... -
C#调用C++的DLL搜集整理的所有数据类型转换方式
2016-09-09 16:07 969转自 http://www.cnblogs.com/zeroo ... -
WinCE CPU使用率计算 测试工具
2016-09-08 16:14 991转自 http://blog.csdn.net/jan ... -
switch在C++与C#中的一些差异
2016-09-08 15:19 810参考链接 http://blog.csdn.net/weiwe ... -
C++ 鼠标模拟程序
2016-09-04 12:09 1612转自 http://blog.csdn.net/weixinh ...
相关推荐
设计模式分为三大类:创建型模式、结构型模式和行为型模式。 **创建型模式**关注的是对象的创建。共有五种创建型模式: 1. **工厂方法模式**:它定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法...
结构型模式不仅限于适配器模式和桥接模式,还包括代理模式、装饰模式、外观模式、组合模式和享元模式等。这些模式都致力于优化系统结构,提升代码的可复用性和可维护性。 4. **学习与实践**: 对于初学者来说,理解...
结构型模式可以分为七种:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。这些模式在不同的场景下有着各自的用途,它们可以帮助我们构建出灵活、可扩展的系统。 适配器模式允许两个不...
### C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式) #### 一、概述 本篇文章将深入探讨C#面向对象设计模式中的Facade外观模式,这是一种结构型模式,旨在通过提供一个统一的接口来简化复杂的子系统。...
在软件设计领域,结构型模式是面向对象设计中的一种重要思想,它主要关注如何组织类和对象,以形成更复杂的结构,同时保持代码的清晰性和可维护性。本资料是关于高等软件工程中的7大结构型模式的PPT总结,包含了大量...
外观模式(Facade Pattern)是一种设计模式,属于对象结构型模式,它的主要目的是为了提供一个统一的接口,使得客户端可以方便地与复杂的子系统进行交互,而无需了解子系统的内部细节。这种模式降低了系统的耦合度,...
这些结构型模式是C#面向对象设计中的重要工具,理解和掌握它们能帮助开发者编写出更加优雅、可扩展的代码。李建忠讲师的课程将深入探讨这些模式的原理、应用场景以及如何在C#中有效实施,对于提升开发者的编程技艺...
在本文中,我们将深入探讨结构型模式以及设计模式的基本原则。 结构型模式是设计模式的一种类别,它关注如何组合类和对象以创建更复杂的结构。这类模式主要涉及类和对象的组合,分为类模式和对象模式。类模式使用...
外观模式(Facade Pattern)提供了一个统一的接口,用来访问子系统的一组接口。它简化了子系统的使用,降低了客户端和子系统之间的耦合度。 最后,享元模式(Flyweight Pattern)用于减少创建对象的数量,以节省...
**外观模式(Facade Pattern)**是一种结构型设计模式,它为复杂的系统或子系统提供一个简单的接口,使得客户端可以不关心内部的复杂性,只通过这个接口与子系统进行交互。这种模式降低了系统的复杂度,提高了代码的...
这个“新版设计模式手册”深入浅出地介绍了设计模式的三大类:创建型模式、结构型模式和行为模式,为开发者提供了一套详细的设计说明。 一、创建型模式 创建型模式主要关注对象的创建过程,它们的目标是使得对象的...
在本文中,我们将探讨几种结构型设计模式,包括适配器模式、桥接模式、外观模式、享元模式、代理模式和装饰器模式。 1. **适配器模式**: - 适配器模式用于连接两个不兼容的接口,使得原本不能一起工作的类可以...
外观模式属于结构型设计模式,它为复杂的子系统提供了一个简单的接口。这个接口使得子系统更容易使用,降低了客户端代码与子系统之间的耦合。在大型项目中,外观模式常用于封装多个子系统的交互,使客户端只需与一个...
通过对这些代码的研究和理解,你将能更好地掌握如何在Java开发中有效地利用结构型模式,提高代码的可读性和可维护性。 在实验过程中,你需要分析每个模式的实现,理解其工作原理,并尝试修改或扩展代码,以加深对...
外观模式(Facade Pattern)则旨在为复杂的子系统提供一个简单的接口,客户端可以通过这个接口与子系统进行交互,而无需了解子系统的内部结构。外观模式简化了客户端代码,隐藏了子系统的复杂性,降低了系统的耦合度...
10. 外观模式:外观模式为复杂的子系统提供了一个简单的接口,简化了客户端代码。 11. 享元模式:享元模式通过共享技术有效地支持大量细粒度的对象,减少内存消耗。 12. 代理模式:代理模式为其他对象提供一种代理...