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

【设计模式C#】外观模式(用于解决客户端对系统的许多类进行频繁沟通)

一种结构性设计模式。

特点是将复杂的子系统调用逻辑封装到一个外观类,从而使客户端更容易与系统交互。

优点:

  1. 简化了接口的调用;
  2. 降低了客户端与子系统的耦合度;
  3. 封装了子系统的逻辑。

缺点:

  1. 引入了额外的类,可能会增加不必要的复杂性;
  2. 不适合需要频繁修改的系统。
  3. 外观类承担的职责过多

适合的场景:

  1. 家庭影院系统;
  2. 网络服务端的连接;
  3. 数据库的访问。
//Car类,即外观类
using System;public class Car
{   //车辆的各个部件private Engine engine = new Engine();//引擎private Door door = new Door();//车门private Light light = new Light();//车灯//启动车辆public void Start(){   //启动车门door.Open();//启动引擎engine.StartEngine();//启动车灯light.TurnOnLight();}//停止车辆public void Stop(){//关闭车灯light.TurnOffLight();//关闭引擎engine.StopEngine();//关闭车门door.Close();}
}
//引擎
public class Engine
{/// <summary>/// 启动游戏引擎/// </summary>public void StartEngine(){Console.WriteLine("Game engine started.");}/// <summary>/// 停止游戏引擎/// </summary>public void StopEngine(){Console.WriteLine("Game engine stopped.");}
}
//车门
public class Door
{/// <summary>/// 开启车门/// </summary>public void Open(){Console.WriteLine("Door is opening");}/// <summary>/// 关闭车门/// </summary>public void Close(){Console.WriteLine("Door is closing");}
}
//车灯
public class Light
{/// <summary>/// 开灯/// </summary>public void TurnOnLight(){Console.WriteLine("open car light");}/// <summary>/// 关灯/// </summary>public void TurnOffLight(){Console.WriteLine("close car light");}
}
//客户端
public class Client
{   //客户端调用public static void Main(string[] args){   //创建车辆实例Car car = new Car();//启动车辆car.Start();//停止车辆car.Stop();}
}
http://www.xdnf.cn/news/1150561.html

相关文章:

  • LangGraph教程10:LangGraph ReAct应用
  • 访问 gitlab 跳转 0.0.0.0
  • 深入理解设计模式:策略模式的艺术与实践
  • XSS原型与原型链
  • 告别项目混乱:基于 pnpm + Turborepo 的现代化 Monorepo 工程化最佳实践
  • C++控制台贪吃蛇开发:从0到1绘制游戏世界
  • Git 完全手册:从入门到团队协作实战(2)
  • GaussDB union 的用法
  • Maven 依赖管理
  • Java从入门到精通:全面学习路线指南
  • uniapp props、$ref、$emit、$parent、$child、$on
  • MySQL练习3
  • 【橘子分布式】gRPC(编程篇-中)
  • 《Origin画百图》之多分类矩阵散点图
  • 从零开始学Tailwind CSS : 颜色配置原理与实践
  • (后者可以节约内存/GPU显存)Pytorch中求逆torch.inverse和解线性方程组torch.linalg.solve有什么关系
  • 93.数字信号处理相关的一些问题
  • 发明专利怎么写,与学术文章异同点与注意事项
  • 月舟科技近调记录
  • Python+ArcGIS+AI蒸散发与GPP估算|Penman-Monteith模型|FLUXNET数据处理|多源产品融合|专业科研绘图与可视化等
  • 实验-华为综合
  • Visual Studio Code(VSCode)中设置中文界面
  • 【Python库包】Gurobi-Optimize (求解 MIP) 安装
  • GATE:基于移动嵌入式设备的实时边缘构建图注意力神经网络用于鲁棒室内定位
  • ElasticSearch:商品SKU+SPU实现join查询,设计及优化
  • 【数据结构】二叉树初阶详解(一):树与二叉树基础 + 堆结构全解析
  • 计算机网络:(十)虚拟专用网 VPN 和网络地址转换 NAT
  • 智能体之变:深度解析OpenAI ChatGPT Agent如何重塑人机协作的未来
  • 【Linux】基本指令
  • c++——友元函数