Design mode - construction mode
References: "Java and Mode" "Design Mode - Foundation of Object-Oriented Software" "C # Technology Unveiled"
Summary: Introduction to the construction mode in GOF design mode creation mode, combined with one of a life, to explain the use of construction mode and use method factory mode, create objects are directly created, and for a complex object, It is more suitable with construction mode, and it creates a complex object step by step. Basic mode is such an interface builder {// built "part" void buildpart1 (); void buildpart2 (); // Return product product getProduct ();}
Thus, the builder from this kind of inheritors can construct any complex builder according to the two construction parts defined above. / * * Created by SharpDevelop. * User: Administrator * Date: 2004-12-02 * Time: 19:57 * * To change this Template Use Tools | Options | Coding | Edit Standard Headers. * / Use system;
namespace builder {class mainclass {public static void Main (string [] args) {SnackShop snackShop = new SnackShop (); NoodleBuilder bcnwc = new BeefCutNoodleWithCarawayBuilder (); Noodle noodle = snackShop.CreateBeefCutNoodleWithCaraway (bcnwc); Console.ReadLine ();} } // Define fast food restaurants, director's role Class snackshop {public snackshop () {}
// create the client add parsley beef noodle way public Noodle CreateBeefCutNoodleWithCaraway (NoodleBuilder noodleBuilder) {noodleBuilder.BuildNoodle (); noodleBuilder.BuildMeat (); noodleBuilder.BuildPureNoodle (); noodleBuilder.BuildSoup (); noodleBuilder.BuildVegetable (); Console .Writeline ("A bowl of fragrant beef knife is made! / N"); return noodlebuilder.getnoodle ();}} // Define noodle constructor interface interface noodlebuilder {void BuildNoodle (); void BuildpureNoodle (); Void buildmeat (); void buildvegetable (); void buildsoup (); noidle getnoodle ();} // meat public class meat {public measure () {} void make () {}} // puppable PUBLIC CLASS PURENODLE {Void make () {} // Vegetable PUBLIC CLASS VEGETABLE} // Soup Public Class Soup {public Soup () {}
Void make () {}} // Define the pull surface, inheriting the PUBLIC CLASS PULLPURENOODLE: PUENOODLE {public PullPureNoodle () {Console.Writeline ("Raised / N");} public void make ()} }} // definition of noodle, it inherits from the public class CutPureNoodle pure noodles: PureNoodle {public CutPureNoodle () {} public void Make () {}} // defined vegetables public class greengrocery: Vegetable {public greengrocery () {Console. WriteLine ("Buy / N" in WriteLine);} public void make () {}} // Define coriander Public Class Caraway: vegetable {public caway () {} public void make () {}} // Define Mutton Public Class Public Class Mutton: meat {public mutton () {console.writeLine ("Mutton is done / N");} public void make () {}} // Define beef public class beef: meat {public beef () {} public void Make () {}} // Defines the noodle PUBLIC CLASS NOODE {PUBLIC PURENODLE PURENOODLE PUBLIC SOUP SOUP; Public Soup Soup; Public Noodle () {PUENODLE = New PureNoodle (); vegetable = new vegetable (); source = new source (); meat = new meat ();}} // definition beef noodle builder logic class BeefCutNoodleWithCarawayBuilder: NoodleBuilder {public BeefCutNoodleWithCarawayBuilder () {} private Noodle noodle; public void BuildPureNoodle () {noodle.pureNoodle = new CutPureNoodle (); Console.WriteLine ( "2 noodle well / n." ); Public void buildvegetable () {noodle.vegetable = new caraway (); console.writeline ("
4. Painting / n ");} public void buildmeat () {noodle.meat = new beef (); console.writeline (" 1. Beef is done / N ");} public void building ()} Noodle.Soup = new Soup (); console.writeline ("3. Decoction is ready / n"); Public noodle getnoodle ()} {return noodle;}}} / * Run results: * Start making beef noodles
1. Beef is doing
2. The knife is finished.
3. Down soup is ready
4. Wash the coriander
A bowl of fragrant beef knife is made! * /