博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Builder
阅读量:4942 次
发布时间:2019-06-11

本文共 1222 字,大约阅读时间需要 4 分钟。

#include 
using namespace std;#define DESTROY_POINTER(ptr) if (ptr) { delete ptr; ptr = NULL; }class Builder{public: virtual ~Builder() {} virtual void Welcome()=0; virtual void City()=0; virtual void End()=0; protected: Builder() {}};class ConcreteBuilderA : public Builder{public: ConcreteBuilderA() {} virtual ~ConcreteBuilderA() {} virtual void Welcome(); virtual void City(); virtual void End();};class ConcreteBuilderB : public Builder{public: ConcreteBuilderB() {} virtual ~ConcreteBuilderB() {} virtual void Welcome(); virtual void City(); virtual void End();};class Director{public: Director(Builder* pBuilder) : m_pBuilder(pBuilder) {} virtual ~Director() { DESTROY_POINTER(m_pBuilder); } void Create(); private: Builder* m_pBuilder;};void ConcreteBuilderA::Welcome(){ cout<<"welcome";}void ConcreteBuilderA::City(){ cout<<" China";}void ConcreteBuilderA::End(){ cout<<"!"<
Welcome(); m_pBuilder->City(); m_pBuilder->End();}int main(int argc, char *argv[]){ Director director(new ConcreteBuilderA); director.Create(); return 0;}

 

转载于:https://www.cnblogs.com/stanley198610281217/p/4152801.html

你可能感兴趣的文章
微服务架构最强详解
查看>>
转:哈夫曼树详解
查看>>
.Net Core Identity外面使用Cookie中间件
查看>>
【坐在马桶上看算法】算法1:最快最简单的排序——桶排序
查看>>
C#中泛型之Dictionary
查看>>
强连通分量
查看>>
使用Code First模式开发如何更新数据库(转载)
查看>>
sqoop导出工具
查看>>
Codeforces Round #376 (Div. 2)
查看>>
Codeforces 607D Power Tree 线段树 (看题解)
查看>>
写在人生的路上——2016年上半年总结
查看>>
员工选票系统-java
查看>>
C语言、C语言的起源以及类似C语言的编程语言的历史简直不要太漫长,我简单总结列表如下:...
查看>>
sp1.3-1.4 Neural Networks and Deep Learning
查看>>
JavaScript易错知识点整理
查看>>
Biological Clocks
查看>>
2018-10-11
查看>>
国内NLP的那些人那些会
查看>>
SQL 将一个表中的所有记录插入到一个临时表中
查看>>
nmea协议
查看>>