建造者模式:将系统变化的部分与稳定的部分割开,根据依赖倒置原则,细节依赖于抽象。由于需求的变化,复杂对象的建造过程是动态变化的,且包含很多细节的建造过程。将建造过程抽象出来,就是建造模式。
适用情况:构造过程、装配过程动态可能动态变化。
模式的组成:
抽象建造者角色(Builder):为创建一个Product对象的各个部件指定抽象接口,以规范产品对象的各个组成成分的建造。一般而言,此角色规定要实现复杂对象的哪些部分的创建,并不涉及具体的对象部件的创建。
具体建造者角色(ConcreteBuilder):
1:实现部件规范的接口和装配过程(BuildPart创建逻辑过程,由指导者调用);
2:与具体的产品关联,提供一个接口给客户类获取具体产品(GetResult());
指导者(Director):调用具体建造者角色以创建产品对象的各个部分。指导者并没有涉及具体产品类的信息,真正拥有具体产品的信息是具体建造者对象。它只负责保证对象各部分完整创建或按某种顺序创建。
产品角色(Product):建造中的复杂对象。它要包含那些定义组件的类,包括将这些组件装配成产品的接口。
建造者模式、原型模式和工厂模式的区别:工厂模式针对创建构造不复杂的对象实例,原型模式创建的对象实例在运行中初始化完成,建造者模式介于两者中,所创建的实例需要一定的步骤,比工厂模式复杂,但是创建不需要到运行时才能确立。
本文纯属个人学习总结,
篇幅的大部分内容都来源于网络,
每个人的水平、层次、出发点不同,阅读者可能存在一定的误解,希望提出建议共同交流