本文共 765 字,大约阅读时间需要 2 分钟。
说明:CCarModel实现模板方法,Builder负责开始建造产品。建造产品时,构建的顺序由Director或main决定。
注意:建造者模式和抽象工厂非常类似。建造者更重视产品建造时的逻辑顺序,而抽象工厂更重视生产出不同型号的产品,抽象工厂不关心顺序。
main(),客户
CInvoker,命令接收者,如项目经理
IGroup,执行者接口
CRequirementGroup,实际执行者之一
CPageGroup,实际执行者之二
CCodePage,实际执行者之三
ICommand,命令接口
CAddRequirementCommand,Execute函数,将调用CRequirementGroup的多个命令。来组合执行用户发出的命令。
CDeletePageCommand,同上
... ... 其它命令。
说明:客户只需要知道向Invoker发出命令(多个命令),而不是将命令直接传达给具体的执行者。当然,客户是需要知道都有什么命令的。
注意:客户只发命令,不需要知道由谁来执行和怎么执行,体现出高内聚的特点。用户在发出命令后,是允许撤回的,所以可以增加一个命令“Undo ”,Undo是状态的变更