遇到多个构造器参数时要考虑用构造器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遇到多个构造器参数时要考虑用构造器相关的知识,希望对你有一定的参考价值。
一般的重叠构造器模式:
public class NutritionFacts{ private final int one; private final int two; private final int three; public NutritionFacts(int one,int two,int three){ this.one = one; this.two = two; } public NutritionFacts(int one){ this(one,0); } public NutritionFacts(int one,int two){ this(one,two,0); } } //调用的时候 NutritionFacts nt = new NutritionFacts(0,0,0); //缺点 :重叠构造器模式,有许多参数的时候,难编写和阅读;
改进:Builder模式:
public class NutritionFacts{ private final int one; private final int two; private final int three; private NutritionFacts(Bulider builder){ one = builder.one; two = builder.two; three = builder.three; } public static class Builder{ private String name; private int one = 0; private int two = 0 ; private int three = 0; public Builder(String name){ this.name = name; } public Builder one(int value){ one = value; reture this; } public Builder two(int value){ two = value; reture this; } public Builder two(int value){ two = value; reture this; } //调用的时候,最后实例化外部类 public NutritionFacts build(){ return new NutritionFacts(this); } } }
以上是关于遇到多个构造器参数时要考虑用构造器的主要内容,如果未能解决你的问题,请参考以下文章
Java:Effective java学习笔记之 遇到多个构造器参数时要考虑用构建器