構(gòu)建模式Builder

優(yōu)點(diǎn):易擴(kuò)展,使用方便靈活配置參數(shù)。例如AlertDialog、Retrofit ...

缺點(diǎn):內(nèi)部變化復(fù)雜,會(huì)有很多的建造類。

Person person =new Person.PersonBuilder()

.buildAge(10)

.buildLike("watch TV")

.buildName("CC")

.build();

/**

* Builder 構(gòu)建模式

*/

public class Person {

private Stringname;

? ? private Stringlike;

? ? private int age;

? ? private Stringkind;

? ? private Person(String name, String like, int age, String kind) {

this.name = name;

? ? ? ? this.like = like;

? ? ? ? this.age = age;

? ? ? ? this.kind = kind;

? ? }

public Person(PersonBuilder builder) {

this.name = builder.name;

? ? ? ? this.like = builder.like;

? ? ? ? this.age = builder.age;

? ? ? ? this.kind = builder.kind;

? ? }

public Person() {

}

protected void setName(String name) {

this.name = name;

? ? }

protected void setLike(String like) {

this.like = like;

? ? }

protected void setAge(int age) {

this.age = age;

? ? }

protected void setKind(String kind) {

this.kind = kind;

? ? }

static class PersonBuilder {

private Stringname;

? ? ? ? private Stringlike;

? ? ? ? private int age;

? ? ? ? private Stringkind;

? ? ? ? PersonBuilder() {

}

public PersonBuilderBuilder(String name) {

this.name = name;

return this;

? ? ? ? }

public PersonBuilderBuilder(int age) {

this.age = age;

return this;

? ? ? ? }

PersonBuilderbuildName(String name) {

this.name = name;

return this;

? ? ? ? }

PersonBuilderbuildAge(int age) {

this.age = age;

return this;

? ? ? ? }

PersonBuilderbuildLike(String like) {

this.like = like;

return this;

? ? ? ? }

PersonBuilderbuildKind(String kind) {

this.kind = kind;

return this;

? ? ? ? }

Personbuild() {

//? ? ? ? Person person = new ManPerson();

//? ? ? ? person.setAge(age);

? ? ? ? ? ? return new Person(this);

? ? ? ? }

}

@NonNull

@Override

? ? public StringtoString() {

return "Person:" +kind +" NAME = " +name +" LIKE =" +like +" AGE = " +age;

? ? }

}


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容