最近看了一些设计模式,感觉短短的代码,能抽象出很多东西,
原来写代码的时候每整体的考虑,也许只有写了一段时间的代码,才会对设计模式有比较深的体会
builder创建者,从名字上理解,他主要承担的是构件对象的操作
书上定义
builder:将一个复杂对象的构造与它的表示分离,使得同样的构件过程可以创建不同的表示
builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知
道内部的具体构建细节.有点类似工厂方法模式和抽象工厂模式,
从概念上,大家理解都差不多,大概的意思就是简化代码,只要写几行代码就可以创建一个你需要的对象,而且可以从用.从用还
比较简单.
贴代码吧
我这里创建了一个电脑builder
Computer.java这里实现了一台电脑需要的配件
package com.linpyi.mode;
public class Computer {
private String CPU;
private String disk;//硬盘
private String memory;//内存
private String mainboard;//主板
public String getCPU() {
return CPU;
}
public void setCPU(String cpu) {
CPU = cpu;
}
public String getDisk() {
return disk;
}
public void setDisk(String disk) {
this.disk = disk;
}
public String getMemory() {
return memory;
}
public void setMemory(String memory) {
this.memory = memory;
}
public String getMainboard() {
return mainboard;
}
public void setMainboard(String mainboard) {
this.mainboard = mainboard;
}
}
ComputerBuilder.java 抽象电脑组装类,每个不同产品的电脑都继承这个类,里面实现组装电脑的基本方法
package com.linpyi.mode;
/**
* 建造电脑组装类
*
* @author work
*
*/
public abstract class ComputerBuilder {
public abstract void makeCPU();
public abstract void makeDisk();
public abstract void makeMemory();
public abstract void makeMainboard();
public abstract Computer getComputer();
}
LenvoBuilder.java 联想电脑组装类,
package com.linpyi.mode;
public class LenvoBuilder extends ComputerBuilder{
Computer computer = new Computer();
@Override
public Computer getComputer() {
// TODO Auto-generated method stub
return computer;
}
@Override
public void makeCPU() {
computer.setCPU("Lenvo-AMD");
}
@Override
public void makeDisk() {
// TODO Auto-generated method stub
computer.setDisk("Lenvo-seagate");
}
@Override
public void makeMainboard() {
// TODO Auto-generated method stub
computer.setMainboard("Lenvo-ausu");
}
@Override
public void makeMemory() {
// TODO Auto-generated method stub
computer.setMemory("Lenvo-kingston");
}
}
ComputerDirector.java 组装类(DIR)自己组装电脑拉
package com.linpyi.mode;
/**
* 电脑组装类
* @author work
*
*/
public class ComputerDirector {
public void makeComputer(ComputerBuilder builder){
builder.makeCPU();
builder.makeDisk();
builder.makeMainboard();
builder.makeMemory();
}
}
Client.java 客户操作类
package com.linpyi.mode;
/**
* 操作类
* @author work
*
*/
public class Client {
public static void main(String[] args){
//实例化一个创建者
ComputerDirector director = new ComputerDirector();
//实例化一个lenvo的类
ComputerBuilder builder = new LenvoBuilder();
//创建产品,用户不需要知道创建里面的方法
director.makeComputer(builder);
//获得产品
Computer computer = builder.getComputer();
System.out.println(computer.getCPU());
System.out.println(computer.getDisk());
System.out.println(computer.getMainboard());
System.out.println(computer.getMemory());
}
}
运行结果
Lenvo-AMD
Lenvo-seagate
Lenvo-ausu
Lenvo-kingston
以后如果需要增加电脑生产品牌,只要创建一个builder 例如 HPBuilder.java
貌似一看起来和工厂模式很像很像,我也对比了下,确实有点像
总感觉他和抽象工厂模式还是有一定差别,比如在创建对象上,但是又写不出来,也许我对这2种模式的理解还不够深刻,代码写
的不够多
分享到:
相关推荐
Builder模式是一种创建型设计模式,它提供了一种创建对象的抽象接口,并允许子类按照步骤构建复杂的对象。这种模式将对象的创建过程分离出来,使得同样的构造过程可以创建不同的表示,从而实现对象创建过程的解耦。 ...
**建造者模式(Builder Pattern)**是软件设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露构建过程。在C++中,这种模式常用于将对象的创建过程与使用过程分离,使得对象的构建更加灵活,...
Java设计模式-建造者模式详解将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式(Builder)是使用多个“小型”工厂来最终创建出一个完整对象。当我们使用Builder的时候,...
设计模式一般分为三大类:创建型模式、结构型模式和行为型模式。 3. 根据文件内容,诸葛亮给赵云的三个锦囊妙计可以用策略模式来实现。每个妙计对应一个实现了策略接口的具体策略类。例如,BackDoor类实现了...
- 建造者模式(Builder):将复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 - 对象池模式(Pool):通过重用已创建的对象来减少对象的创建和销毁次数。 2. **结构型模式**:这类模式...
建造者模式(Builder)是Java设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。在Android开发中,这种模式尤其有用,因为Android组件如Activity、Fragment等的初始化过程通常...
"设计模式-建造者模式" ...建造者模式是一种非常有用的设计模式,可以解决复杂对象的创建问题,提高软件的可维护性和可重用性。但是,需要根据实际情况选择使用该模式,并且需要遵循一定的设计原则。
建造者模式(Builder Pattern)是设计模式中的一种创建型模式,它允许我们分步骤构建复杂的对象,而无需暴露其构造过程。这种模式的核心思想在于将对象的构建与表示分离,使得构建过程和不同表示可以独立变化,提高...
**建造者模式(Builder Pattern)**是软件设计模式中的一种,属于创建型模式。它将复杂对象的构建过程与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式通常用于那些需要大量构造参数的对象,通过...
"设计模式1-创建型模式" 设计模式是软件设计中的一种解决方案,它提供了一种通用的设计方案,解决了面相对象系统中重复出现的设计问题。设计模式的学习和运用对软件系统开发有着非常重要的意义,它可以帮助开发者更...
设计模式是对常见问题的解决方案的标准化描述,它们在软件工程中起到了重要的作用,帮助开发者创建可维护、可扩展且易于理解的代码。 一、设计模式的分类: 设计模式通常分为三大类:创建型模式、结构型模式和行为...
创建型模式关注对象的创建过程,如单例模式(Singleton)、工厂模式(Factory)和建造者模式(Builder)等,它们提供了一种灵活的方式来创建和管理对象,避免了硬编码和紧密耦合。结构型模式关注如何将对象和类组合...
1. Product(产品):定义了被构建对象的接口或类,Builder模式创建的产品对象。 2. Builder(抽象建造者):为创建一个Product对象的各个部分指定接口。它声明了构建产品对象的各个部件的方法,但不给出具体实现。 ...
统设计中,有时候面临着一个“复杂系统”的创建工作,该对象通常由各个部分的子对象用一定的算法构成,或者说按一定的步骤组合而成;这些的算法和步骤是稳定的,而构成这个对象的子对象却经常由于需求改变而发生...
建造者模式(Builder Pattern)是一种创建型设计模式,它提供了一种方法来分步骤构建复杂的对象,使得构建过程和表示分离,使得同样的构建过程可以创建不同的表示。这种模式经常在对象的构造过程中需要进行多种选择...
### 23种设计模式之创建型模式 #### 一、单例模式(Singleton) **定义**:确保一个类只有一个实例,并提供一个全局访问点。 **实现方式**: 1. **饿汉式**:在类装载时即创建唯一实例。 - **优点**:线程安全,...
设计模式之---建造模式 1,建造模式属于对象的...抽象建造者builder接口,实现生产产品操作--创建完成 提供产品实例; ,导演者(director):调用具体建造者角色以创建产品对象; ,产品(Product):建造中的复杂对象,
- 构建者模式(Builder):将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。 2. 结构型模式(Structural Patterns): - 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的...