建造者模式使用的也是比較多的設計模式,其他建立型及23種設計模式點這。其實這個例子不好寫,因為建造者模式一般在物件屬性比較多時,我這又懶所以只用了三個。我們先寫一下builder的形:
public
class computer
@override
public string tostring()
static class builder
public builder setscreen(string screen)
public builder setdisk(string disk)
public computer getcomputer()
}public
static
void
main(string args)
}輸出:
cpu:intel i7 disk:512m ssd screen:aoc
cpu:amd ryzen7 disk:1t ssd screen:samsung
為啥叫builder的形呢, 因為跟直接set屬性唯一的區別就是可以不停的點點點。下面就是第二種,也是像okhttp和google原始碼裡的形式:
public
class computer
@override
public string tostring()
static class builder
public builder setscreen(string screen)
public builder setdisk(string disk)
public computer build()
}// public static class builderdirector
// }
public
static
void
main(string args)
}輸出:同上
先說一下這個的好處:
1.他的封裝可以降低耦合。
2.用乙個構造器可以保證所有生成的類遵循同乙個構造順序,即過程無關。
3.不用寫大量的過載構造方法,也用點點點取代set方式。
最後,其實我覺得跟建造者模式沒多大關係的導演者。當然在buildera常用時,我們可以封裝成乙個方法來獲取這個builder並進行簡單修改獲得我們要的computerb。
建造者模式
1.定義 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。2.uml 類圖 結構 該結構 演示了複雜物件被一步一步建立的建造者模式。builder pattern structural example using system using system.collection...
建造者模式
軟體領域中的設計模式為開發人員提供了一種使用專家設計經驗的有效途徑。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型,真正領悟設計模式的精髓是可能乙個漫長的過程,需要大量實踐經驗的積累。最近看設計模式的書,對於每個模式,用c 寫了個小例子,加深一下理解。主要參考 大話設計模式 和 設...
建造者模式
建造者模式將複雜物件的構建和它的表示分離,使同樣的構建過程能夠構建出不同的表示。以乙個建造小人為例子,可以建造2種小人,胖子和瘦子 include using namespace std class builder 抽象建造者類 class buildthinman public builder 瘦...