我还是挺喜欢这个设计模式的,而且这种设计模式非常的好用,也非常的常见,好比如我们定义提示框的时候用到的AalertDialog.Builder,或者说我们使用第三方框架的时候用到的Builder,一般Builder里面的方法都是用于设置功能,将很多的功能集成到这个类里面,再根据用户选择来使用哪些功能,实现个性化。
这个模式用起来还真是挺套路的啊,一般需要Builder的时候,都有有一个默认的builder实现,而当我们想要自定义我们的Builder的时候,就需要通过new 外部类.Builder()这样的形式实例化一个外部类的Builder实例,我们可以选择性的开放是否可以直接实例化外部类,如果我们想要限制每次都需要通过Builder来实例化外部类对象,那么就可以将外部类的构造函数设为private,最后我们通过调用Builder的build()方法进而调用外部类的构造函数,就可以实例化一个外部类对象。
这样子的好处是我们所有建造的对象可以实现高度的个性化,而且从代码逻辑上非常的清晰
网友评论