Java的23种模式之建造者模式

上一篇文章讲到静态内部类的使用场景就是在建造者模式中
这篇文章就介绍一下建造者模式
所谓的建造者模式就是指用静态内部类的函数创建外部类的对象
举个例子 上代码:

//一个名为car的普通类,它的内部有一个名为Maker的静态内部类
package com.qf.demo11;

public class Car {
   
  private String name;  //外部类的两个属性
      private int size;
    
  public Car() {             //无参构造方法
      super();
  }

  public Car(Maker maker) {      //外部类构造方法,此方法在内部类的Show()中创建Car对象时被调用
      super();
      this.name = maker.name;
      this.size = maker.size;
  }

  public String getName() {                                //Car的get   set方法
      return name;
  }

  public void setName(String name) {
      this.name = name;
  }

  public int getSize() {
      return size;
  }

  public void setSize(int size) {
      this.size = size;
  }

          public static class Maker      //静态内部类
          {
               private String name;      //静态内部类的属性
               private int size;
               public Maker() {          //无参构造方法
                  
               }           
               public Maker(String name, int size) {  //有参构造方法
                      super();
                      this.name = name;
                      this.size = size;
               }           
              public String getName() {
                  return name;
              }
              public Maker setName(String name) {    //将set函数的返回值改成返回内部类
                  this.name = name;
                  return this;
              }
              public int getSize() { 
                  return size;
              }
              public Maker setSize(int size) {           //将set函数的返回值改成返回内部类
                  this.size = size;
                  return this;
              }
                   //重写toString()
              @Override
              public String toString() {
                  return "Maker [name=" + name + ", size=" + size + "]";
              }
              public Car show() //创建并返回外部类对象
              {
                  return new Car(this);
              }
               
               
          }

}

下面是Main方法的测试

package com.qf.demo11;

import com.qf.demo11.Car.Maker;

public class Test {

    public static void main(String[] args) {
        
        // 静态内部类不依赖于外部类,可以自己独立创建对象
        Maker maker = new Maker("宝马",23);
        
        //创建Car类型的引用变量来接收Maker的show()方法返回的Car类型变量
        Car car = maker.show();
        //链式编程,将Maker的set函数的返回值都改成返回内部类对象
        Car car2 = new Maker().setName("奔驰").setSize(56).show();
        

    }

}



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接:http://blog.csdn.net/zhangerqing http://www.cnblogs....
    孤独杂货铺阅读 1,626评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,445评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,561评论 18 399
  • 作者:吴敏 今儿个下班有些晚了。待最后一个顾客取了衣服离开干洗店,都六点五十了。许安萍掏出边角磨损得早已斑驳,色泽...
    紫草茵茵阅读 1,914评论 0 0
  • 醒来, 看到新鲜的阳光, 喝纯正的咖啡, 读书 洗澡 穿干净的衣服 出门 真是美好的一天。
    Renneewang阅读 166评论 0 1

友情链接更多精彩内容