使用Builder模式造車

2021-09-07 22:36:39 字數 1998 閱讀 9142

builder模式也可以造車。

對於builder模式來說,首相要把要造的車確定下來:

public class car
public string engine
public string transmission
public string body
public int doors
public list<

string

> accessories

public car()
public void showcarinfo()
", accessory);
}
}
}
這個car可以交給builder1也可以交給builder2,等等,但首先需要提煉出builder們的乙個抽象類。這個抽象builder可以設定和獲取car,並提供生產car各個部件的抽象方法。

public abstract class carbuilder
public void setcar()
public abstract void setmodel();
public abstract void setengine();
public abstract void settransmission();
public abstract void setbody();
public abstract void setdoors();
public abstract void setaccessories();
}
然後,就需要乙個具體的builder來派生抽象builder。

public class builderone : carbuilder
public override void setmodel()
public override void settransmission()
public override void setbody()
public override void setaccessories()
public override void setdoors()
}
這個抽象builder的派生類可能有很多,所以需要乙個管理這些派生builder的類,用來決定到底選用哪個builder來生產。

public class buildermanager
public void buildcar()
public car getcar()
}
在客戶端,如果需要造車,就找builder的管理類,通過它的建構函式傳入具體的builder。

class program
}
抽象工廠和builder模式都可以造車,但兩者有也許的不同:   

● 抽象工廠模式相當於為車找了乙個專屬工廠,要求工廠只能造這種型別的車

● builder模式相當於為車找不同的工廠,不同的工廠生產出來的車型都不一樣

設計模式 Builder模式

bulder模式是一步步建立乙個複雜物件的建立模型,它允許使用者在不知道內部構建細節 的情況下可以更精細地控制物件的構造流程該模式為將構建複雜物件的過程和它的部件 解耦,使得構建過程和部件的表示隔離開來。將乙個負責物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示 3.1 相同的方法,不...

設計模式 Builder模式

網路上有人將它定義為 將乙個複雜物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的物件。所以建造者模式適合於乙個具有較多的零件 屬性 的產品 物件 的建立過程。由五個部分構成 1.product concreatebuilder建立該產品的內部表示並定義它的裝配過程。2.builder介面 ...

設計模式 Builder模式

一貫風格,直接上 package created by mingchenchen on 2017 6 14.public class user public void setid string id public string getcountry public void setcountry st...