
结构性设计模式
文章平均质量分 98
愿未来如晨曦般灿烂,人生如繁星般璀璨 博客中的所有相关资源如果无法下载都可以私信博主免费下载
冰茶_
专注于C#技术领域的软件工程师,同时也在探索AI编码方面
博客中的所有相关资源如果无法下载都可以私信博主免费下载
愿未来如晨曦般灿烂,人生如繁星般璀璨
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
结构型设计模式之代理模式
代理模式是一种结构型设计模式,它通过创建一个代理对象来控制对原始对象的访问。在C#中,代理模式可以通过静态代理(基于接口实现)或动态代理(使用RealProxy或DispatchProxy类)来实现。主要应用场景包括远程调用、访问控制、延迟加载和性能优化等。代理模式的核心是提供一个间接层,在不改变原始对象的情况下增加额外功能,如权限检查、缓存、日志记录等。原创 2025-06-09 08:00:00 · 980 阅读 · 0 评论 -
享元模式:高效共享对象的设计艺术
享元模式是一种通过共享技术减少内存占用的结构型设计模式,它将对象状态分为内部状态(可共享、不随环境变化)和外部状态(不可共享、随环境变化)。该模式包含享元工厂、抽象享元、具体享元和非共享享元等角色,通过对象池管理共享实例。在C#示例中,文本格式化器利用享元模式共享字符格式(内部状态),而字符内容和位置作为外部状态由客户端传入。这种方法显著减少了重复对象的创建,提高了内存利用率。原创 2025-06-09 07:00:00 · 1141 阅读 · 0 评论 -
外观模式:简化复杂系统的优雅解决方案
外观模式是一种简化复杂系统的设计模式,通过提供统一的高层接口来封装子系统功能。本文介绍了外观模式的概念、结构图,以及与适配器模式的区别。重点展示了一个C#实现的家庭影院系统示例:通过HomeTheaterFacade类封装投影仪、音响、播放器等子系统,提供简单的WatchMovie()和EndMovie()方法,将原本需要多步操作的流程简化为单一调用。这种模式降低了客户端与子系统的耦合度,使复杂系统更易使用和维护。原创 2025-06-08 08:00:00 · 1078 阅读 · 0 评论 -
组合模式:构建树形结构的优雅方案
组合模式是一种将对象组织成树形结构的设计模式,实现"部分-整体"的层次关系。它包含抽象组件、叶子节点和组合节点三个核心角色,提供统一接口处理单个对象和组合对象。组合模式有两种实现方式:透明式(所有方法在抽象组件中定义)和安全式(仅定义公共方法)。透明式接口统一但安全性较低,安全式反之。C#示例展示了文件系统的透明式实现,通过基类FileSystemItem统一接口,Leaf和Composite分别实现不同行为,客户端可一致操作整个树形结构。该模式简化了客户端代码,特别适用于递归结构的应用原创 2025-06-08 07:00:00 · 1315 阅读 · 0 评论 -
结构型设计模式之装饰模式
装饰模式是一种动态扩展对象功能的结构型设计模式,通过组合而非继承的方式在不改变原结构的前提下添加新功能。该模式包含抽象组件、具体组件、抽象装饰器和具体装饰器四个核心角色,通过层层包装实现功能叠加。相比继承,装饰模式具有更高的灵活性,避免了类爆炸问题,但会增加系统复杂度。典型应用场景包括饮料加调料、文本格式化等需要动态扩展功能的系统。C#示例展示了咖啡店订单系统和文本格式化器的实现,通过装饰器组合实现功能扩展,符合开闭原则。原创 2025-06-02 21:42:52 · 1233 阅读 · 0 评论 -
结构型设计模式之桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,它将抽象部分与实现部分分离,使它们可以独立变化。这种模式涉及到一个接口作为桥接,使得实体类的功能独立于接口实现类,两者可以独立地变化。桥接模式的核心思想是:将抽象与实现解耦,使两者可以独立地变化。这种模式通过提供抽象和实现之间的桥接结构,来实现两者的解耦。原创 2025-06-02 20:00:58 · 1398 阅读 · 0 评论 -
适配器模式:让不兼容接口协同工作
适配器模式是一种结构型设计模式,用于将不兼容的接口转换为兼容接口,使原本无法一起工作的类能够协同工作。文章介绍了适配器模式的两种类型(类适配器和对象适配器),并通过C#示例演示了对象适配器的实现方式。在媒体播放器的案例中,通过创建MediaAdapter类,将AdvancedMediaPlayer的功能适配到IMediaPlayer接口,使客户端可以统一处理不同格式的媒体文件。适配器模式常用于系统升级、整合第三方库等场景,遵循了"开闭原则",提高了系统的灵活性和可扩展性。原创 2025-06-01 18:24:19 · 733 阅读 · 0 评论