建造小人示例:
1.Builder:
public abstract class PersonBuilder { public abstract void BuildHead(); public abstract void BuildBody(); public abstract void BuildArm(); public abstract void BuildLeg(); }
2.ConcreteBuilder:
public class ThinPersonBuilder:PersonBuilder { public override void BuildHead() { Console.WriteLine("瘦头"); } public override void BuildBody() { Console.WriteLine("瘦身体"); } public override void BuildArm() { Console.WriteLine("瘦手"); } public override void BuildLeg() { Console.WriteLine("瘦腿"); } } public class FatPersonBuilder:PersonBuilder { public override void BuildHead() { Console.WriteLine("胖头"); } public override void BuildBody() { Console.WriteLine("胖身体"); } public override void BuildArm() { Console.WriteLine("胖手"); } public override void BuildLeg() { Console.WriteLine("胖腿"); } }
3.Director:
public class PersonDirector { private PersonBuilder personBuilder; public PersonDirector(PersonBuilder personBuilder) { this.personBuilder=personBuilder; } public void CreatePerson() { personBuilder.BuildHead(); personBuilder.BuildBody(); personBuilder.BuildArm(); personBuilder.BuildLeg(); } }
4.客户端代码:
class Program { static void Main(string[] args) { PersonBuilder thinPersonBuilder = new ThinPersonBuilder(); PersonDirector thinPersonDirector = new PersonDirector(thinPersonBuilder); thinPersonDirector.CreatePerson(); PersonBuilder fatPersonBuilder = new FatPersonBuilder(); PersonDirector fatPersonDirector = new PersonDirector(fatPersonBuilder); fatPersonDirector.CreatePerson(); } }
建造者模式:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
建造者模式的好处是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所欲若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。
时间: 2024-10-06 01:14:53