您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 3浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

设计模式-创建型-生成器

phymat.nico 发布时间:2017-10-07 15:37:23 ,浏览量:3

#pragma once

#ifndef BUILDER_H 
#define BUILDER_H 

#include 
using namespace std;
// 虚拟基类,是所有Builder的基类,提供不同部分的构建接口函数 
class  Builder 
{ 
public: 
	Builder(){}; 
	virtual ~Builder(){} 

	// 纯虚函数,提供构建不同部分的构建接口函数 
	virtual void BuilderPartA() = 0; 
	virtual void BuilderPartB() = 0; 
} ; 

// 使用Builder构建产品,构建产品的过程都一致,但是不同的builder有不同的实现 
// 这个不同的实现通过不同的Builder派生类来实现,存有一个Builder的指针,通过这个来实现多态调用 
class Director 
{ 
public: 
	Director(Builder *pBuilder); 
	~Director(); 
	void Construct(); 

private: 
	auto_ptr m_pBuilder; 
}; 

// Builder的派生类,实现BuilderPartA和BuilderPartB接口函数 
class ConcreateBuilder1:public Builder 
{ 
public: 
	ConcreateBuilder1(){} 
	virtual ~ConcreateBuilder1(){} 
	virtual void BuilderPartA(); 
	virtual void BuilderPartB(); 
}; 

// Builder的派生类,实现BuilderPartA和BuilderPartB接口函数 
class  ConcreateBuilder2:public  Builder 
{ 
public: 
	ConcreateBuilder2(){} 
	virtual ~ConcreateBuilder2(){} 
	virtual void BuilderPartA(); 
	virtual void BuilderPartB(); 
}; 

#endif 
#include "StdAfx.h"
#include "builder_impl.h"

#include  
using namespace std;
void  ConcreateBuilder1::BuilderPartA() 
{ 
	std::cout            
关注
打赏
1659628745
查看更多评论
0.0469s