- 浏览: 761131 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
建造者模式(Builder):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示;它是当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时适用的模式.
#include <iostream> #include <vector> using namespace std; class ToyModel { public: ToyModel(){} virtual ~ToyModel(){} virtual void step1()=0; virtual void step2()=0; virtual void step3()=0; void setSequence(const vector<int>& sequence){ mSequence = sequence; } void create() { for(vector<int>::const_iterator iter = mSequence.begin();iter!=mSequence.end();++iter) { if(*iter==1){ step1(); }else if(*iter==2){ step2(); }else if(*iter==3){ step3(); } } } private: vector<int> mSequence; }; class Toy1:public ToyModel { public: Toy1(){} ~Toy1(){} void step1(){cout << "step1" << endl;} void step2(){cout << "step2" << endl;} void step3(){cout << "step3" << endl;} }; class ToyBuilder { public: ToyBuilder(){} virtual ~ToyBuilder(){} virtual void setSequence(const vector<int>& sequence)=0; virtual ToyModel* getModel()=0; }; class Toy1Builder:public ToyBuilder { public: Toy1Builder() { mToy1 = new Toy1; } ~Toy1Builder() { } void setSequence(const vector<int> &sequence){ mToy1->setSequence(sequence); } ToyModel* getModel(){ return mToy1; } private: Toy1* mToy1; }; int main() { ToyBuilder* toy1Builder = new Toy1Builder; vector<int> v; v.push_back(3); v.push_back(2); v.push_back(1); toy1Builder->setSequence(v); ToyModel* toy1 = toy1Builder->getModel(); toy1->create(); } step3 step2 step1
发表评论
-
桥接模式(Bridge)
2014-09-26 15:34 813桥接模式:将抽象与实现解耦,使得两者可以独立地变化,抽象部分的 ... -
访问者模式(Visitor)
2014-08-03 13:59 830访问者模式(Visitor),表示一个作用于某对象结构中的各元 ... -
解释器模式(interpreter)
2014-08-03 13:55 672解释器模式(interpreter),给定一个语言,定义它的方 ... -
享元模式(Flyweight)
2014-08-02 09:31 631享元模式(Flyweight):运用共享技术有效地支持大量细粒 ... -
中介者模式(Mediator)
2014-08-02 09:26 440中介者模式(Mediator):用一个中介对象来封装一系列的对 ... -
职责链模式(Responsibility)
2014-07-31 20:36 580职责链模式(Chain of Responsibility): ... -
合成/聚合利用原则
2014-07-29 20:56 583合成/聚合利用原则:尽量使用合成/聚合,尽量不要使用类继承 ... -
组合模式(Composite)
2014-07-27 10:15 428组合模式(Composite):将对象组合成树形结构以表示'部 ... -
备忘录模式(Memento)
2014-07-26 09:09 557备忘录(Memento):在不破坏封装性的前提下,捕获一个对象 ... -
事件委托(delegate)
2014-07-23 20:53 592委托机制的本质就是调用成员函数的函数指针,实现回调 委托就是 ... -
外观模式(facade)
2014-07-20 09:31 621外观模式(facade):为子系统中的一组接口提供一个一致的界 ... -
迪米特法则
2014-07-19 18:23 401迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发 ... -
原型模式
2014-07-16 20:34 507原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创 ... -
里氏代换
2014-07-12 09:43 333里氏代换:一个软件实体如果使用的是一个父类的话,那么一定适用于 ... -
依赖倒转
2014-07-12 09:39 390依赖倒转:抽象不应该依赖细节,细节应该依赖抽象,说白了就是针对 ... -
开放-封闭原则
2014-07-12 09:33 556开放-封闭原则:是说软件实体(类,模块,函数等等)应该可以扩展 ... -
单一职责
2014-07-12 09:26 553单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的 ... -
MVC
2011-07-21 17:32 1008MVC是一种复合模式,结合了观察者,策略模式和组合模式。 要 ... -
代理模式(Proxy)
2011-07-19 15:47 920代理模式:为另一个对象提供一个替身或占位符以控制这个对象的访问 ... -
状态模式(State)
2011-07-13 17:33 871状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像 ...
相关推荐
**建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...
【PHP设计模式:建造者模式Builder】是一种创建型设计模式,用于将对象的构建与表示分离开来,以便相同的构建过程可以创建不同的表示。在PHP中,建造者模式常用于处理复杂的对象创建,特别是当对象的组成部分可能...
其中,建造者模式属于创建型模式,主要用于解决构建复杂对象的问题。 ### 建造者模式解析 建造者模式的核心思想是将一个复杂的对象分解为多个简单的组成部分,然后通过一个构建者来组装这些部分。这样做的好处是...
建造者模式(Builder)是设计模式中的一种结构型模式,它允许我们分步骤构建复杂的对象,而无需暴露构造过程。这种模式将构造过程与对象的表示分离,使得同样的构造过程可以创建不同的表示。在C++中,建造者模式通常...
建造者模式(Builder Pattern)是软件工程中一种用于创建对象的抽象工厂方法,它将复杂的构建过程分解为一系列步骤,使得构建过程可以独立于其表示进行。这种模式允许客户端使用相同的构建过程创建不同表现形式的...
建造者模式是一种结构型设计模式,它允许我们分步骤创建复杂对象,而无需暴露构建过程的内部细节。这种模式在Java编程中非常常见,尤其是在处理需要多种构建方式或需要隔离对象构造过程的场景。 建造者模式的核心...
建造者模式是一种设计模式,它将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。在C++中实现建造者模式,我们可以遵循以下步骤: 首先,我们需要定义一个抽象建造者(Builder)类,它声明了一...
建造者模式(Builder Pattern)是一种创建型设计模式,允许使用多个简单的对象一步一步构建一个复杂的对象。它将对象的构建过程与表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的组成 产品...
建造者模式【Builder Pattern】是一种设计模式,它在软件工程中用于将复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示。这种模式在处理复杂对象的构造时特别有用,因为它允许我们通过分离构造...
建造者模式(Builder Pattern)是一种创建型设计模式,它允许我们分步骤构建复杂对象,而无需暴露构造过程的细节。这种模式将一个复杂的构建过程分解为一系列简单的步骤,使得构造过程可以有不同的解释,从而实现...
明确建造者(Builder)、具体建造者(Concrete Builder)、指导者(Director)、产品(Product)之间的职责和联系。 ◆建造者(Builder): 给出一个抽象接口,以规范产品对象的各个组成成分的建造。一般而言,...
建造者模式(Builder)是Java设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。在Android开发中,这种模式尤其有用,因为Android组件如Activity、Fragment等的初始化过程通常...
建造者模式(Builder Pattern)是设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,通过将构造过程与对象本身分离,使得同样的构造过程可以创建不同的表示。这种模式常用于当创建对象的步骤复杂或者...
还有时,建造者模式会被用来实现链式构建,即每个构建方法都返回Builder自身,使得调用者可以通过连缀方法来构建对象。 **建造者模式的优点:** 1. **封装性**:建造者模式将创建对象的复杂过程隐藏起来,使得...
建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离,使得同样的构建过程可以创建不同的表示。这种模式经常在对象的构造过程中需要进行多种选择...
建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离。这种模式常用于当一个对象的构建过程复杂且需要多个步骤时,或者当我们希望同一个构建过程...
文件`BuilderPattern1`和`BuilderPattern`可能是示例代码或者进一步的解释,它们可能包含一个完整的建造者模式实现,包括产品类、抽象建造者、具体建造者和导演类的代码,以及如何在客户端使用这些类的例子。...
建造者模式(Builder Pattern)是设计模式中的一种,主要用于创建复杂对象。此模式的核心在于将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。简单来说,建造者模式允许用户通过指定...