【C#设计模式(4)——构建者模式(Builder Pattern)】

public class Computer { private string part1 = "CPU"; private string part2 = "主板"; private string part3 = "内存"; private string part4 = "显卡"; private string part5 = "显示器"; private string part6 = "磁盘"; private string part7 = "声卡"; private string part8 = "网卡"; public void SetPart1(string part) { Console.WriteLine($"{part1}:{part}"); } public void SetPart2(string part) { Console.WriteLine($"{part2}:{part}"); } public void SetPart3(string part) { Console.WriteLine($"{part3}:{part}"); } public void SetPart4(string part) { Console.WriteLine($"{part4}:{part}"); } public void SetPart5(string part) { Console.WriteLine($"{part5}:{part}"); } public void SetPart6(string part) { Console.WriteLine($"{part6}:{part}"); } public void SetPart7(string part) { Console.WriteLine($"{part7}:{part}"); } public void SetPart8(string part) { Console.WriteLine($"{part8}:{part}"); } } //构建者抽象类 public abstract class Builder { protected Computer computer; public Builder () { this.computer = new Computer(); } public abstract void BuildPart1(); public abstract void BuildPart2(); public abstract void BuildPart3(); public abstract void BuildPart4(); public abstract void BuildPart5(); public abstract void BuildPart6(); public abstract void BuildPart7(); public abstract void BuildPart8(); public Computer GetComputer() { return computer; } } //构建者实体类 public class ComputerBuider : Builder { public override void BuildPart1() { computer.SetPart1($"AMD Ryzen 7 7745HX with Radeon Graphic 八核"); } public override void BuildPart2() { computer.SetPart2($"MECHERVO MRID6-23"); } public override void BuildPart3() { computer.SetPart3($"32GB DDR5 4800MHz( 16GB + 16GB )"); } public override void BuildPart4() { computer.SetPart4($"NVIDIA GeForce RTX 4060 Laptop GPU (8GB / 清华同方)"); } public override void BuildPart5() { computer.SetPart5($"TL160ADMP19[TMA2031] (16.3英寸)"); } public override void BuildPart6() { computer.SetPart6($"KINGSTON OM8PGP41024N-A0 (1024GB)"); } public override void BuildPart7() { computer.SetPart7($"NVIDIA High Definition Audio"); } public override void BuildPart8() { computer.SetPart8($"Intel(R) Wi-Fi 6 AX200 160MHz"); } } // 指挥者类 public class Director { private Builder builder; public void SetBuilder(Builder builder) { this.builder = builder; } public Computer Construct() { builder.BuildPart1(); builder.BuildPart2(); builder.BuildPart3(); builder.BuildPart4(); builder.BuildPart5(); builder.BuildPart6(); builder.BuildPart7(); builder.BuildPart8(); return builder.GetComputer(); } } /* * 构建者模式:Builder Pattern */ internal class Program { static void Main(string[] args) { Director director = new Director(); Builder builder = new ComputerBuider(); director.SetBuilder(builder); Computer computer = director.Construct(); Console.ReadLine(); } }
上一篇:福昕阅读器高级版解决文件上传IEEE PDF eXpress字体未嵌入


下一篇:NODE.JS护照查验接口助力核验出入境管理局签发护照真伪