要初始化实例,我们可以使用默认构造函数和许多设置方法,也可以使用带有长参数列表的构造函数。以后一种方式,对象状态在生成对象后可以保持不变(因为没有设置器),但是长的参数列表很难看且容易出错。在前一种方式中,避免了长参数列表,但是在完全创建对象之后,设置器可能会错误地更改对象状态。

我需要这样一个对象,即在创建对象后其内部字段应保持不变,而我不喜欢长参数列表。最佳做法是什么?

最佳答案

使用Builder pattern

Foo foo = new FooBuilder().setBar(...).setBaz(...).build();

10-06 11:34