常用的结构型设计模式(C#举例)

本文介绍了三种结构型设计模式:代理模式、装饰器模式和适配器模式。代理模式用于在不修改原始类代码的情况下,通过代理类控制访问或附加功能;装饰器模式侧重于在不改变接口的情况下增强原始类功能,常用于避免复杂的继承关系;适配器模式则解决了接口不兼容问题,通过类或对象适配转换接口,以实现兼容性。
摘要由CSDN通过智能技术生成


概述

  1. 代理模式:代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问,而非加强功能,这是它跟装饰器模式最大的不同。
  2. 装饰器模式:装饰者模式在不改变原始类接口的情况下,对原始类功能进行增强,并且支持多个装饰器的嵌套使用。
  3. 适配器模式:适配器模式是一种事后的补救策略。适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口。

代理模式

它在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。

  1. 一般情况下,让代理类和原始类实现同样的接口
  2. 如果原始类并没有定义接口,并且原始类代码并不是我们开发维护的,可以通过让代理类继承原始类的方法来实现代理模式
  3. 常用在业务系统中开发非功能性需求,比如:监控、统计、鉴权、限流、事务、幂等、日志等
  4. 将附加功能与业务功能解耦,放到代理类统一处理,方便让程序员只关注业务方面的开发
// author: suoxd123@126.com
public interface IRunner{
   
// 接口也可以替换成抽象类
  void run();
}
public class Marathon : IRunner {
   
  public void run() {
    //... }
}
public class CrossCountryProxy : IRunner {
   
  private IRunner runner;
  public CrossCountryProxy(IRunner runner
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放羊郎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值