05.建造者模式 鏈式呼叫
我們在開發過程中,經常遇到這種寫法,product product= new builder().seta("fo").setb("bar").setc("so").build();
這種寫法可以一直.set鏈式呼叫,這也是建造者模式的一種寫法,通過鏈式呼叫去裝飾產品。最後build()建造產品。
上**。
public
class
computer
public
static
class
builder
public builder setusbcount
(int usbcount)
public builder setkeyboard
(string keyboard)
public builder setdisplay
(string display)
public computer build()
}//省略getter方法
}
在客戶端使用鏈式呼叫,一步一步的把物件構建出來。
computer computer=
newcomputer.builder
("因特爾"
,"三星").
setdisplay
("三星24寸").
setkeyboard
("羅技").
setusbcount(2
).build()
;
設計模式05 建造者模式
抽象一點說建造者模式的目的 將乙個複雜物件的構建與其表示相分離,使得同樣的構建過程可以建立不同的表示。設計模式 gof 舉個例子,一台電腦的主機板上有很多的硬體,可能根據需要要經常的更換。比如現在要將intel的cpu換成amd的,那麼我們不需要從新的構建一塊主機板,而是只換cpu就可以了。這就是建...
Builder建造者模式 鏈式呼叫
正常情況下,宣告乙個user類,然後列出幾條屬性,這個時候ide會提示說缺少初始化方法。然後就直接構建構造方法,像這樣 public class user 從上面 可以看出,雖然只有4個屬性,但是構造方法的引數已經顯得很累贅了,這個時候就需要用到builder模式先來簡化引數的個數。在user類中建...
C 設計模式05 建造者模式
建造者模式 在gof的 設計模式 可復用物件導向軟體的基礎 中是這樣說的 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。這句話,似懂非懂的。乙個複雜物件的建立,其通常是由很多的子物件構成 如果乙個物件能夠直接就建立好了,那麼也不會稱之為複雜物件。由於專案中需求的變化,這個...