前言:在学习c++设计模式后对于建造者模式的理解(由于笔者现在目前在使用java语言进行学习,所以代码片段是使用java来进行编写的可能有些地方会有错误,希望大家能够指正)
建造者模式:在软件系统中,有时候面临着”一个“复杂对象的创建工作其通常由各个部分的子对象用一定的算法构成,由于需求的变化这个复杂部分的内部常常会发生变化,但是将这个对象组合在一起的算法却又相对稳定,这个模式和模板方法模式有相似之处,但这个模式主要来解决对象的创建工作
下面大家来实现一个需求,需要建造一间房子,需要实现step1-step5五个步骤
代码实现:
House:
public abstract class House {
public void init(){
this.Builder1();
this.Builder2();
this.Builder3();
this.Builder4();
this.Builder5();
}
abstract void Builder1();
abstract void Builder2();
abstract void Builder3();
abstract void Builder4();
abstract void Builder5();
}
Build
public class Build extends House{
void Builder1() {
System.out.println("建窗户");
}
void Builder2() {
System.out.println("建地板");
}
void Builder3() {
System.out.println("建厨房");
}
void Builder4() {
System.out.println("建卧室");
}
void Builder5() {
System.out.println("建客厅");
}
}
主程序:
public class Run {
public static void main(String[] args) {
House house = new Build();
house.init();
}
}
运行截图:
在这个模式中,对于复杂对象Build,用户不需要知道其中的构建细节只需要使用其中的方法就可以完成房子的构建,并且当我们需要修改复杂对象build的时候也不需要去动主程序的代码(稳定)