zoukankan      html  css  js  c++  java
  • 设计模式:builder模式

    使用场景:当需要创建的实例非常复杂时,需要先创建每一个小部分,然后在组装起来

    理解:区别于模板方法模式,核心方法一个是在父类中,一个是在另一个监管类中,本质类似

    class Builder
    {
    public:
    	virtual void head() = 0;
    	virtual void body() = 0;
    	virtual void tail() = 0;
    };
    
    class Director
    {
    	Builder* builder;
    public:
    	Director(Builder* builder)
    	{
    		this->builder = builder;
    	}
    	
    	void construct()     //核心方法
            				 //先构造每一个小部分,然后组装
    	{
    		builder->head();  
    		builder->body();
    		builder->tail();
    	}
    };
    
    class TestBuilder: public Builder
    {
    public:
    	void head()
    	{
    		cout << "*******************" << endl;
    	}
    	
    	void body()
    	{
    		cout << "  Body Body Body" << endl;
    	}
    	
    	void tail()
    	{
    		cout << "+++++++++++++++++++" << endl;
    	}
    };
    
    int main() 
    {
    	Builder* pBuilder = new TestBuilder();
    	Director d(pBuilder);
    	d.construct();
    	return 0;
    }
    
  • 相关阅读:
    git知识点总结
    自动化进阶
    unittest单元测试框架
    自动化测试模型
    webdriver
    python文件处理
    uva 11077 置换
    poj 1066 Treasure Hunt
    poj 2661 Factstone Benchmark
    hdu 4180
  • 原文地址:https://www.cnblogs.com/chusiyong/p/11433149.html
Copyright © 2011-2022 走看看