UML类图¶
基础¶
example¶
这里以设计模式中的生成器模式为例:
-
Builder
:抽象接口类;生成器,包含生成产品的各个步骤 -
成员函数:
reset()
:(public
)释放资源便于重新生成对象,以防止在提供一个对象时一个相同的对象在构造(确保只有一个对象)buildStepA()
:(public
)生成器中的步骤一buildStepB()
:(public
)生成器中的步骤二buildStepZ()
:(public
)生成器中的步骤三
-
Concrete Builder1
:具象建造者,继承于Builder
-
成员变量:
result
:(private
)类型为Product 1
,表示生成的产品为Product 1
-
成员函数:
reset()
:(public
)同上
result = new Product1()
-
buildStepA()
:(public
)具象生成器中的步骤一 -
buildStepB()
:(public
)具象生成器中的步骤二
result.setFeatureB()
-
buildStepZ()
:(public
)具象生成器中的步骤三 -
getResult()
:(pubilc
)类型为product 1
,表示取出Product 1
return this->result
-
Concrete Builder2
:同上 -
Director
:主管类,负责接收用户委托,指定生成器进行生产,产品由客户自行接收(有些情况下不是必须的) -
成员变量:
builder
:(private
)类型为Builder
,表示主管有此生成器
-
成员函数:
Director(builder)
:(pubilc
)构造函数需要传入生成器作为参数,表示接收用户委托changeBuilder(builder)
:(public
)表示根据用户意愿改变生成器,具体实现为重写builder
中的某些函数make(type)
:(public
)根据样式安排生成器制造需要的产品(即按照需求只进行必要的步骤)
-
Client
:客户 -
可以选择将需求委托给主管类
-
也可以选择自己找生成器进行制造