Java设计模式-建造者模式(1)
来源:互联网 发布:有游戏源码怎么修改 编辑:程序博客网 时间:2024/06/17 01:51
概述:
建造者模式也叫作创建者模式,属于Java23种设计模式之一。
1:定义
建造者模式:将复杂对象的创建和表示分离,使得同样的构建过程可以创建不同的表示。
2:使用场景:
a) 当一个复杂对象需要创建时候,它的内部组成的创建顺序是固定的,但是内部的组成是复杂的
b)创建的复杂对象的算法独立于该对象的组成部分,也独立于组成部分的装配方法时
3:角色
a)Builder:抽象创建者角色,这是一个将复杂对象的创建过程抽象化的一个接口,它规范了对象的各个部分的创建,规定了要实现复杂对象的哪个部分的创建,但是不涉及具体对象的创建。’
b)ConcreateBuilder:具体创建者角色,它实现了Builder接口,具体化对象的创建过程,最后返回一个对象的实例
c)Director:构造一个使用Builder接口的对象,指导整个构建过程;不涉及具体的产品信息,只负责对象的各个部分完整创建或者按照某种顺序创建
d)Prodect,产品就是我们要创建的复杂对象,一般来说包含多个部分
4 代码:
a)Builder抽象创建者接口
public abstract class Builder {protected abstract void buildPartA();protected abstract void buildPartB();protected abstract void buildPartC();protected abstract Product getResult();}
b)ConcreateBuilder:具体创建者角色
public class BuilderA extends Builder {private Product product = new Product();@Overrideprotected void buildPartA() {product.add("partA");}@Overrideprotected void buildPartB() {product.add("partB");}@Overrideprotected void buildPartC() {product.add("partC");}@Overrideprotected Product getResult() {return product;}}c)Director
public class BuilderDirector {private Builder builder;public BuilderDirector(Builder builder) {this.builder = builder;}public Product build() { builder.buildPartA();builder.buildPartB();builder.buildPartC();return builder.getResult();}}d)Prodect
public class Product {private List<String> parts = new ArrayList<String>();public void add(String partName) {parts.add(partName);}public void show() {System.out.println("----产品创建----");for (String part : parts) {System.out.println(part);}}}e)测试代码
public class BuilderTest {public static void main(String[] args) {BuilderDirector director = new BuilderDirector(new BuilderA());Product product = director.build();product.show();}}f)打印结果
结语:使用建造者模式的好处
a)使用建造者模式可以不用让客户端知道产品内部的创建细节
b)具体的建造者类之间是相互独立的,这样有利于系统的扩展
c)具体的建造者之间相互独立可以对建造的过程逐步细化,而不会对其他模块产生任何影响
阅读全文
1 0
- 设计模式(JAVA)-------建造者模式
- Java设计模式(建造者模式)
- Java设计模式-建造者模式(1)
- java 设计模式之建造者模式(Builder)模式
- JAVA设计模式---建造者模式(生成器模式)
- JAVA设计模式:建造者(Builder)
- JAVA-建造者设计模式
- Java设计模式-----Builder建造者模式
- Java设计模式-----Builder建造者模式
- JAVA设计模式--建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- java设计模式之建造者模式
- 【Java设计模式】之建造者模式
- java设计模式之建造者模式
- JAVA设计模式-建造者模式-Builder
- JAVA系列-设计模式-建造者模式
- Java--设计模式之建造者模式
- 自定义View时,wrap_content属性对测量的影响
- Tengine虚拟主机配置(IP)
- Hello Lyq And Xj
- 用栈模拟汉诺塔问题
- 如何通过 PDF Transformer+将模糊字符变清晰
- Java设计模式-建造者模式(1)
- "巴卡斯杯" 中国大学生程序设计竞赛
- NYOJ 97 兄弟郊游问题
- 同样来借款,为什么你的利率比别人高?
- oracle批量插入数据
- Android 中的application
- 加密你的SQLite
- easyui layout布局的根据浏览器页面大小自动调整大小
- Android_屏幕翻转过程中Activity生命周期的变化,以及如果自定义屏幕翻转过程中执行的内容。