[ 
https://issues.apache.org/jira/browse/HBASE-18951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16193448#comment-16193448
 ] 

Appy commented on HBASE-18951:
------------------------------

I see that AysncTable  has like 4-5 functions. In my exp, builder pattern makes 
sense when a class has many ways of constructing and object (due to nullables 
or otherwise) such that it'd need many *constructors* to accurately capture all 
ways of making an object for it.
And in that case too, usually 3-5 constructors (this is where personal opinion 
kicks in) are fine.

With that in mind, i don't understand how does builder pattern makes sense in 
context of interfaces, because they don't need constructors! Quoting from 
wikipedia- "he builder pattern is an *object creation* software design pattern."

> Use Builder pattern to remove nullable parameters in RawAsyncTable/AsyncTable 
> interface
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-18951
>                 URL: https://issues.apache.org/jira/browse/HBASE-18951
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Client
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Blocker
>             Fix For: 2.0.0-beta-1
>
>
> As Optional is not supposed to be used as method parameters but we do not 
> want nullable parameters.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to