当前位置: 首页 > news >正文

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

前言

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();}
}
http://www.lryc.cn/news/482067.html

相关文章:

  • LabVIEW实验室液压制动系统
  • 解决:Loading class `com.mysql.jdbc.Driver‘. This is deprecated
  • 【寻找重复数字】——脑筋急转弯...
  • AI基础知识
  • ubuntu 22.04 硬件配置 查看 显卡
  • 【计算机网络】网络框架
  • linux nvidia/cuda安装
  • 硬件设备网络安全问题与潜在漏洞分析及渗透测试应用
  • #渗透测试#SRC漏洞挖掘#CSRF漏洞的防御
  • C++ | Leetcode C++题解之第542题01矩阵
  • RabbitMQ 不公平分发介绍
  • 测试实项中的偶必现难测bug--一键登录失败
  • 危!这些高危端口再不知道问题就大了
  • Redis集群模式之Redis Sentinel vs. Redis Cluster
  • Leetcode 罗马数字转整数
  • 东方通TongWeb替换Tomcat的踩坑记录
  • ceph介绍和搭建
  • 树莓派安装FreeSWITCH
  • OpenSSL 生成根证书、中间证书和网站证书
  • MySQL核心业务大表归档过程
  • dapp获取钱包地址,及签名
  • 探索Dijkstra算法的普遍最优性:从经典算法到最新学术突破
  • ‍️代码的华尔兹:在 Makefile 的指尖上舞动自动化的诗篇
  • 函数式编程Stream流(通俗易懂!!!)
  • 数据分析:转录组差异fgsea富集分析
  • 在Django中安装、配置、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的功能
  • AI笔筒操作说明及应用场景
  • Android自启动管控
  • 把握鸿蒙生态崛起的机遇:开发者视角的探讨
  • MySQL初学之旅(1)配置与基础操作