Java設計模式之建造者模式

2021-07-23 17:38:45 字數 3493 閱讀 4325

builder模式也叫建造者模式或者生成器模式,是由gof提出的23種設計模式中的一種。builder模式是一種物件建立型模式之一,用來隱藏復合物件的建立過程,它把復合物件的建立過程加以抽象,通過子類繼承和過載的方式,動

態地建立具有復合屬性的物件。

//具體的構建物件

/* * 房子

*/public

class house

public

void

setfloor(string floor)

public string getwall()

public

void

setwall(string wall)

public string gethousetop()

public

void

sethousetop(string housetop)

}

/*

* 工程隊

*/public

inte***ce housebuilder

public

class housedirector

}

public

class

gongyubuilder

implements

housebuilder

public

void

makefloor()

public

void

makehousetop()

public

void

makewall()

}

/*

* 平房工程隊

*/public

class

pingfangbuilder

implements

housebuilder

public

void

makehousetop()

public

void

makewall()

public house gethouse()

}

public

class mainclass

}

/**

* * created by zero on 2016-08-19

* * 通過建造者模式構建乙個popupwindow

* */

public

class

commonpopup

extends

popupwindow

public builder settitle(string title)

public builder setcontent(string content)

public builder setlistenleft(ilistenleftcallback ilistenleft)

public builder setlefttext(string lefttext)

public builder setlistenright(ilistenrightcallback ilistenright)

public builder setrighttext(string righttext)

public commonpopup build()

}public

commonpopup(builder builder)

private popupwindow popupwindow;

private view popview;

private textview txt_title;

private textview txt_info;

private

void

initpopup()else

txt_info = (textview) popview.findviewbyid(r.id.txt_info);

if(textutils.isempty(content))else

button btn_right = (button) popview.findviewbyid(r.id.btn_right);

if(!textutils.isempty(righttext))

}});

}else

button btn_left = (button) popview.findviewbyid(r.id.btn_left);

if(!textutils.isempty(lefttext))

}});

}else

}public

void

showpopup()

popupwindow.showatlocation(popview, 0, 0, 0);}}

//介面類

public

inte***ce ilistenleftcallback

public

inte***ce ilistenrightcallback

activity

/**

* created by zero on 2016-08-19

*/public

class

builderactivity

extends

activity

// 不想寫xml,就直接動態編碼了

private view drawview()

}).build().showpopup();

}});

button btn2 = new button(this);

btn2.setlayoutparams(btn_params);

btn2.settext("click2");

btn2.setonclicklistener(new onclicklistener()

}).setrighttext("確定")

.setlistenright(new ilistenrightcallback()

}).build().showpopup();

}});

ll_layout.addview(btn1);

ll_layout.addview(btn2);

return ll_layout;}}

執行 效果圖:

java設計模式之建造者模式

概念 建造者模式是指把乙個複雜物件的構建和表示分離,就像建房子一樣,每乙個房子的建造流程都是相同的,但是卻會有很多形狀不一,樣式不同的房子,這裡的房子實際上就是房子這個物件的表示,建造的流程就是房子物件的構建 建造者模式的構成部分 1.builder介面 builder介面設計要表示物件的構建流程,...

JAVA設計模式之建造者模式

分離物件子元件,子元件單獨構造 由builder來負責 和裝配模式 由director負責 從而可以構造出複雜物件。這個模式適用於某個物件構造特別複雜。由於實現了構建和裝配的解耦。不同的構建器,相同的裝配,也可以生產不同的物件的物件 相同的構建器和不同的裝配順序也可以構造不同的物件,這樣實現了構建演...

Java設計模式之建造者模式

介紹 提起builder,我們第一時間想到的就是建築物,高樓大廈。在建造高樓大廈的時候,需要先打地基,搭建建築框架,然後自下而上地一層一層蓋起來。通常,在建造這種具有複雜結構的物體時,很難一氣呵成。我們需要首先建造組成這個物體的各個部分,然後分階段將它們組裝起來。而建造者模式 builder pat...