zoukankan      html  css  js  c++  java
  • 需要多个参数输入时-----------------考虑使用变种的Builder模式

    业务需求:

    创建一个不可变的Person对象,这个Person可以拥有以下几个属性:名字、性别、年龄、职业、车、鞋子、衣服、钱、房子。

    要求:

    其中名字和性别是必填项,而其他选填项可以根据情况自由输入。

    具体实现:

    1.为了保证对象的不可变,我们要将Person类中的每一个属性都声明为private final的。

    2.在Person类中定义一个内部类Builder。

    (1)这个Builder内部类中的属性要和Person中的相同,并且必须有的属性(名字和性别)要用final修饰,防止这些属性没有被赋值。

    (2)其中必填项使用Builder的构造方法接收值,选填项使用返回值为Builder的方法接收值。

     (3)最后定义了一个build方法,将Builder对象传入Person的私有构造方法,最终返回一个Person对象。

    3.Person的私有构造方法的写法:不直接传入属性,而是传入一个Builder对象。

    方法调用:

    必填项使用Builder构造方法传入,非必须的属性可以根据需要任意设置。

     

     转载于  Java 大白话讲解设计模式之 -- 建造者(Builder)模式

  • 相关阅读:
    19-10-31-B
    19-10-30-Night-V
    19-10-30-C
    19-10-29-Night-X
    19-10-29-Z
    19-10-28-A
    19-10-27-S
    19-10-26-Night-D
    留言板
    优秀博客存档
  • 原文地址:https://www.cnblogs.com/dxtlearningblockchain/p/12253235.html
Copyright © 2011-2022 走看看