美文网首页
建造者模式

建造者模式

作者: lguipeng | 来源:发表于2015-03-21 18:21 被阅读67次
  • 定义

将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  • 使用场景

  • 相同的方法,不同的执行顺序,产生不同的事件结果时;
  • 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时;
  • 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的效能,这个时候使用建造者模式非常合适;
  • 实现方式

利用Builder类来构造A类的一个对象,并将A类的构造方法私有化,构造函数参数只有Builder。实现代码如下:

Phone.java

package com.design.builder;

public class Phone {

   private String cpu;
   
   private int ram;
   
   private String screen;
   
   private Phone(PhoneBuilder builder) {
       this.cpu = builder.cpu;
       this.ram = builder.ram;
       this.screen = builder.screen;
   }
   
   public String getCpu() {
       return cpu;
   }
   public void setCpu(String cpu) {
       this.cpu = cpu;
   }
   public int getRam() {
       return ram;
   }
   public void setRam(int ram) {
       this.ram = ram;
   }
   public String getScreen() {
       return screen;
   }
   public void setScreen(String screen) {
       this.screen = screen;
   }
   
   public static class PhoneBuilder{
       private String cpu;
       
       private int ram;
       //default screen
       private String screen = "1280 * 720";
       
       public PhoneBuilder cpu(String cpu){
           this.cpu = cpu;
           return this;
       }
       
       public PhoneBuilder ram(int ram){
           this.ram = ram;
           return this;
       }
       
       public PhoneBuilder screen(String screen){
           this.screen = screen;
           return this;
       }
       
       public Phone build(){
           //default handle
           if (ram == 0){
               ram = 1024;
           }
           return new Phone(this);
       }
   }
 }

App.java

package com.design.builder;

import com.design.builder.Phone.PhoneBuilder;

public class App {

   public static void main(String[] args) {
       Phone iphone = new PhoneBuilder()
                       .cpu("A7")
                       .ram(2048)
                       .screen("1136 * 720")
                       .build();
   }

}
  • 总结优缺点

  • 优点
    • 良好的封装性,能够生成多种多样的对象
    • 代码简洁易读
  • 缺点
    • 编写麻烦,产生多余的Builder对象

相关文章

  • Builder Pattern in Java

    建造者模式:建造者模式定义建造者模式应用场景实现案例Jdk中的建造者模式建造者模式的优点建造者模式的缺点 建造者模...

  • 设计模式(4) 建造者模式

    什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与...

  • 建造者模式(部件构造)

    目录 建造者模式的理念 从 POJO 到建造者模式的思考 怎么来实现建造者模式 建造者模式在Android源码中的...

  • 【设计模式】之建造者Builder模式

    建造者模式 什么是建造者模式? 建造者模式属于创建型模式的一员,可以控制对象的实例化过程。建造者模式简化了复杂对象...

  • 建造者模式

    一、建造者模式介绍 二、建造者模式代码实例

  • 建造者模式

    建造者模式 首先,建造者模式的封装性很好。使用建造者模式可以有效的封装变化,在使用建造者模式的场景中,一般产品类和...

  • 建造者模式:深入理解建造者模式 ——组装复杂的实例

    目录: 一 建造者模式介绍 1.1 定义 1.2 为什么要用建造者模式(优点)? 1.3 哪些情况不要用建造者模式...

  • 设计模式之建造者模式

    设计模式之建造者模式 Intro 简介 建造者模式: 建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加...

  • 一、设计模式(构建模式)——03建造模式与原型模式

    建造者模式 建造型模式用于创建过程稳定,但配置多变的对象。 建造模式的实现要点: 在建造者模式中,指挥者是直接与客...

  • 创建型模式:建造者模式

    个人公众号原文:创建型模式:建造者模式 五大创建型模式之四:建造者模式。 简介 姓名 :建造者模式 英文名 :Bu...

网友评论

      本文标题:建造者模式

      本文链接:https://www.haomeiwen.com/subject/swowxttx.html