title: Refactor to use Builder pattern or Telescoping constructor pattern
body: <p>According to Effective Java 2ed <em>Item 2</em></p>
  
  <blockquote>
    <p><strong>telescoping constructor pattern</strong>, in
    which you provide a constructor with
    only the required parameters, another
    with a single optional parameter, a
    third with two optional parameters,
    and so on, culminating in a
    constructor with all the optional
    parameters.</p>
  </blockquote>
  
  <p>An example of constructors of the class applying this pattern is borrowed from <a href="https://stackoverflow.com/questions/328496/when-would-you-use-the-builder-pattern">When would you use the Builder Pattern?</a></p>
  
  <p><em>code set 1a</em></p>
  
  <pre><code>Pizza(int size) { ... }        
  Pizza(int size, boolean cheese) { ... }    
  Pizza(int size, boolean cheese, boolean pepperoni) { ... }    
  Pizza(int size, boolean cheese, boolean pepperoni, boolean bacon) { ... }
  </code></pre>
  
  <p>size is a <em>required</em> parameter.
  cheese, pepperoni, and bacon are <em>optional</em> parameters.
  Supposing that I would like to provide the constructor like below.</p>
  
  <p><em>code set 1b</em></p>
  
  <pre><code>Pizza(int size) { ... }        
  Pizza(int size, boolean cheese) { ... }    
  Pizza(int size, boolean pepperoni) { ... }    
  Pizza(int size, boolean cheese, boolean pepperoni, boolean bacon, int price, int) { ... }
  </code></pre>
  
  <p>Another example is that</p>
  
  <p><em>code set 2</em></p>
  
  <pre><code>public AttributeKey(String key, Class&lt;T&gt; clazz)
  public AttributeKey(String key, Class&lt;T&gt; clazz) 
  public AttributeKey(String key, Class&lt;T&gt; clazz, @Nullable T defaultValue, boolean isNullValueAllowed)
  public AttributeKey(String key, Class&lt;T&gt; clazz, @Nullable T defaultValue, boolean isNullValueAllowed, @Nullable ResourceBundleUtil labels)
  </code></pre>
  
  <p>The <strong>two latest example</strong> I gave <strong>didn't follow the characteristic of telescoping constructor</strong> as code set 1a did</p>
  
  <ol>
  <li>Are code set 1b and 2 included in telescoping constructor? if not, what is it called?</li>
  <li>Comparing to using Builder Pattern, which one (between Builder and pattern of code set 1a,2) provides more benefits</li>
  </ol>