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

绵阳市城市建设档案馆网站新作的网站怎么做百度推送

绵阳市城市建设档案馆网站,新作的网站怎么做百度推送,企业不开了网站备案吗,什么值得买wordpress模板一、设计模式的基本概念 设计模式是软件开发过程中针对反复出现的问题总结出来的通用解决方案。结构型设计模式主要关注如何将类或对象进行组合,以实现新的功能或满足特定的需求。适配器模式就是结构型设计模式中的一种,它允许将一个类的接口转换成客户…

一、设计模式的基本概念

设计模式是软件开发过程中针对反复出现的问题总结出来的通用解决方案。结构型设计模式主要关注如何将类或对象进行组合,以实现新的功能或满足特定的需求。适配器模式就是结构型设计模式中的一种,它允许将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

二、类适配器模式

(一)实现原理

类适配器模式通过继承来实现接口的适配。它创建一个新的类,该类继承自需要适配的类,并实现目标接口。通过这种方式,新类可以同时拥有原类的功能和目标接口的方法。

(二)原理代码示例

// Portal 类,代表需要适配的类
public class Portal
{private readonly string _msg;public Portal(string msg){_msg = msg;}public void Input(){Console.WriteLine(_msg + " --> 18v。");}
}// IOutput 接口,代表目标接口
interface IOutput
{void Output();
}// Adapter 类,适配器类
class Adapter : Portal, IOutput
{public Adapter(string msg) : base(msg){}public void Output(){Input();}
}class Program
{static void Main(string[] args){IOutput adapter = new Adapter("220v");adapter.Output(); }
}
实际项目案例:旧支付系统与新接口适配

假设一个电商系统中,有一个旧的支付系统类 OldPaymentSystem,它有一个 ProcessPaymentOld 方法用于处理支付。现在系统要升级,引入了一个新的支付接口 INewPayment,包含 ProcessPayment 方法。为了让旧的支付系统能够适配新的接口,可以使用类适配器模式。

// 旧的支付系统类
public class OldPaymentSystem
{public void ProcessPaymentOld(decimal amount){Console.WriteLine($"Processing payment of {amount} using old system.");}
}// 新的支付接口
public interface INewPayment
{void ProcessPayment(decimal amount);
}// 类适配器
public class PaymentAdapter : OldPaymentSystem, INewPayment
{public void ProcessPayment(decimal amount){ProcessPaymentOld(amount);}
}// 使用示例
class Program
{static void Main(){INewPayment payment = new PaymentAdapter();payment.ProcessPayment(100.0m);}
}

在这个案例中,PaymentAdapter 类继承了 OldPaymentSystem 类并实现了 INewPayment 接口,将旧系统的支付方法适配到了新的接口上,使得旧系统可以无缝融入新的支付流程。

 

(三)优缺点分析

  • 优点
    • 实现简单:通过继承和接口实现,代码结构相对清晰,易于理解和维护。
    • 可以重写基类方法:适配器类可以重写基类的方法,从而提供更灵活的适配方式。
  • 缺点
    • 耦合度高:适配器类与被适配的类之间通过继承建立了紧密的联系,当被适配类的实现发生变化时,可能会影响到适配器类。
    • 只能适配一个类:由于 C# 等语言不支持多重继承,适配器类只能继承一个基类,因此只能适配一个类。

三、对象适配器模式

(一)实现原理

对象适配器模式通过组合来实现接口的适配。它创建一个新的类,该类持有需要适配的类的实例,并实现目标接口。在目标接口的方法中,调用适配类实例的相应方法。

(二)原理代码示例

// Portal 类,代表需要适配的类
public class Portal
{private readonly string _msg;public Portal(string msg){_msg = msg;}public void Input(){Console.WriteLine(_msg + " --> 18v");}
}// Export 类,抽象类,代表目标接口
public abstract class Export
{public abstract void Output();
}// Adapter 类,适配器类
public class Adapter : Export
{private readonly Portal _portal;public Adapter(string msg){_portal = new Portal(msg);}public override void Output(){_portal.Input();}
}class Program
{static void Main(string[] args){Export adapter = new Adapter("220v");adapter.Output(); }
}
实际项目案例:多格式文件读取器适配

假设一个文件处理系统,有多种不同格式的文件读取器,如 TxtFileReader 用于读取文本文件,CsvFileReader 用于读取 CSV 文件。现在系统需要一个统一的文件读取接口 IFileReader,可以使用对象适配器模式来实现。

// 文本文件读取器
public class TxtFileReader
{public void ReadTxtFile(string filePath){Console.WriteLine($"Reading TXT file: {filePath}");}
}// CSV 文件读取器
public class CsvFileReader
{public void ReadCsvFile(string filePath){Console.WriteLine($"Reading CSV file: {filePath}");}
}// 统一的文件读取接口
public interface IFileReader
{void ReadFile(string filePath);
}// 对象适配器
public class FileReaderAdapter : IFileReader
{private readonly TxtFileReader _txtReader;private readonly CsvFileReader _csvReader;public FileReaderAdapter(){_txtReader = new TxtFileReader();_csvReader = new CsvFileReader();}public void ReadFile(string filePath){if (filePath.EndsWith(".txt")){_txtReader.ReadTxtFile(filePath);}else if (filePath.EndsWith(".csv")){_csvReader.ReadCsvFile(filePath);}else{Console.WriteLine("Unsupported file format.");}}
}// 使用示例
class Program
{static void Main(){IFileReader reader = new FileReaderAdapter();reader.ReadFile("example.txt");reader.ReadFile("example.csv");}
}

在这个案例中,FileReaderAdapter 类实现了 IFileReader 接口,并持有 TxtFileReader 和 CsvFileReader 对象的引用。在 ReadFile 方法中,根据文件的扩展名选择调用不同的读取器方法,实现了对多种文件读取器的适配。

(三)优缺点分析

  • 优点
    • 低耦合度:适配器类与被适配的类之间通过组合的方式关联,降低了类之间的耦合度。当被适配类的实现发生变化时,只要其接口不变,适配器类就不需要修改。
    • 灵活性高:可以在运行时动态地改变适配器类所适配的对象,只需要修改持有对象的引用即可。
    • 可适配多个类:可以通过修改适配器类,使其能够适配多个不同的类,只要这些类都有类似的功能。
  • 缺点
    • 代码复杂度增加:相对于类适配器模式,对象适配器模式需要创建额外的对象并进行组合,增加了代码的复杂度。
    • 调用开销:由于需要通过对象引用调用方法,会存在一定的调用开销。

四、两种模式的选择

在实际开发中,选择类适配器模式还是对象适配器模式需要根据具体的情况来决定。如果需要适配的类较少,且希望实现简单,那么类适配器模式可能是一个不错的选择。如果需要适配的类较多,或者希望降低类之间的耦合度,提高代码的灵活性,那么对象适配器模式更为合适。


文章转载自:

http://hw9htc5i.zrpbf.cn
http://TjOsT2IN.zrpbf.cn
http://r61PtJOM.zrpbf.cn
http://nNUX4W2p.zrpbf.cn
http://giPyrl4K.zrpbf.cn
http://g81xmtSU.zrpbf.cn
http://LqhuIUkB.zrpbf.cn
http://1AhPit7w.zrpbf.cn
http://BzZ4hKaM.zrpbf.cn
http://IBFjnuqc.zrpbf.cn
http://j21d1JBr.zrpbf.cn
http://27W81BfR.zrpbf.cn
http://yH3yhi59.zrpbf.cn
http://qmWmtCeh.zrpbf.cn
http://si4IkPTT.zrpbf.cn
http://u7FDzAjv.zrpbf.cn
http://WkkUDEna.zrpbf.cn
http://LIIAJ8ir.zrpbf.cn
http://VOHcmEIq.zrpbf.cn
http://1SwG3AkX.zrpbf.cn
http://8l9z3ChH.zrpbf.cn
http://a4Xfj7FV.zrpbf.cn
http://BwyyN2sy.zrpbf.cn
http://lidoAIXA.zrpbf.cn
http://Uvdb8dih.zrpbf.cn
http://kMILvc43.zrpbf.cn
http://RVGjmsQI.zrpbf.cn
http://nliYpMA1.zrpbf.cn
http://Vwmeib62.zrpbf.cn
http://nd5G9zRF.zrpbf.cn
http://www.dtcms.com/wzjs/715542.html

相关文章:

  • 网站备案贵州电话应用程序安装下载
  • 哪里购买网站空间好百度推广网络推广微信网站
  • 电商网站流量统计wordpress自带301
  • 环球旅游网的网站建设网络网站推广选择乐云seo
  • 网站建设js兰州网站设计厂家
  • 网站没被收录怎么办安装wordpress中文
  • 专做程序员招聘的网站itmc平台seo优化关键词个数
  • 怎样做网站别人能访问建设机械网站平台
  • 专业的网站建设国外做化工网站
  • 免费动画制作网站深圳建筑工程信息网
  • 上海网站建设与设计公司好南京响应式网站设计
  • 企业门户网站的作用免费网站制作公司
  • 网站用途及栏目说明怎么做微信小说网站
  • 怎么做签到网站网站服务器及运营维护公告
  • 石家庄那有建网站保健品网站源代码
  • 网站里可以添加视频做背景吗江山市建设局网站
  • vs哪个版本做网站好爱佳倍 北京网站
  • 免费安全建网站百度应用市场
  • 厦门网站设计建设seo网站推广技术
  • 微信小程序电商平台开发德州鲁企动力网站优化中心
  • 搜狗网站上海网站建设网站
  • php 手机网站 上传图片网站设计 侵权
  • 网站开发进度控制计划表宠物托运网站开发
  • 莒县网站制作公司眉山网站建设哪家好
  • 建产品网站怎么做深圳网站建设 宝华大厦
  • 孝感网站制作公司公司网站维护更新流程
  • 网上外贸网站怎么做百度公司的发展历程
  • 免费个人网站建设网站地图案例
  • 天津网站备案时间搜索引擎营销实践报告
  • 网站设计分辨率ps修图软件