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

网站开发及服务合同网站设计建设专业服务

网站开发及服务合同,网站设计建设专业服务,wordpress设置永久链接404,网站首页素材1、模板方法模式 模板方法模式#xff1a;定义一个操作中的算法骨架#xff0c;而将一些步骤延迟到子类中#xff0c;模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 特点#xff1a;通过把不变的行为搬移到超类#xff0c;去除子类中重复的代… 1、模板方法模式 模板方法模式定义一个操作中的算法骨架而将一些步骤延迟到子类中模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 特点通过把不变的行为搬移到超类去除子类中重复的代码来体现它的优势。 模板方法模式提供了一个很好的代码复用平台。当不变的和可变的行为在子类实现中混合在一起的时候不变的行为就会在子类中重复出现。我们通过模板方法模式把这些行为搬移到单一的地方这样就帮助子类摆脱重复的不变的行为的纠缠。 2、Net Core 读取的类型文件 读取不同类型文件的代码 //读取JSONConfigurationBuilder builder new ConfigurationBuilder();builder.AddJsonFile(configuration.json);var config builder.Build();var collections config.AsEnumerable();//读取INIConfigurationBuilder builder new ConfigurationBuilder();builder.AddIniFile(configuration.ini);var config builder.Build();var collections config.AsEnumerable();//读取XMLConfigurationBuilder builder new ConfigurationBuilder();builder.AddXmlFile(configuration.xml);var config builder.Build();var collections config.AsEnumerable(); 如上代码如果不使用模板方法模式定义读取文件基类子类中重写读取方法如下代码 //定义读取文件的基类public abstract class AFileRead{public abstract void Read(string path);}//定义读取JSON文件的子类public class FileReadJson:AFileRead{public override void Read(string path){ConfigurationBuilder builder new ConfigurationBuilder();builder.AddJsonFile(path);var config builder.Build();var collections config.AsEnumerable();}}//定义读取INI文件的子类 public class FileReadIni : AFileRead {public override void Read(string path){ConfigurationBuilder builder new ConfigurationBuilder();builder.AddIniFile(path);var config builder.Build();var collections config.AsEnumerable();} } //定义读取XML文件的子类public class FileReadXml:AFileRead{public override void Read(string path){ConfigurationBuilder builder new ConfigurationBuilder();builder.AddXmlFile(path);var config builder.Build();var collections config.AsEnumerable();}} 上述代码中只有一行读取不同类型文件代码不同其余代码都相同。这只是单独的一个读取文件的功能代码量很小如果是一个特别大的功能代码过多那么如果要更改的话工作量也是很大的。 为了减少重复的代码如何去解决这个问题 这个时候模板方法模式就起作用了。模板方法模式将子类中不变的行为定义到基类中子类中只留下可变的行为这样子类中就摆脱了重复代码的纠缠代码如下 //定义读取文件的接口 public interface IFileRead {IEnumerableKeyValuePairstring,string ReadFile(); }//定义读取文件封装重复代码将可变的行为延迟到子类中实现 public abstract class AFileRead : IFileRead {public IEnumerableKeyValuePairstring, string ReadFile(){ConfigurationBuilder builder new ConfigurationBuilder();AddFile(builder); var config builder.Build();var collections config.AsEnumerable();return collections;}//这个函数需要延迟到子类中去实现protected abstract IConfigurationBuilder AddFile(ConfigurationBuilder builder); } //读取JSON文件 public class ReadJsonFile : AFileRead {protected override IConfigurationBuilder AddFile(ConfigurationBuilder builder){return builder.AddJsonFile(configuration.json);} } //读取XML文件 public class ReadXmlFile : AFileRead {protected override IConfigurationBuilder AddFile(ConfigurationBuilder builder){return builder.AddXmlFile(configuration.xml);} } //读取Ini文件 public class ReadIniFile : AFileRead {protected override IConfigurationBuilder AddFile(ConfigurationBuilder builder){return builder.AddIniFile(configuration.ini);} } 总结 模板方法模式帮助我们封装了不变的行为涉及到实现某些特定步骤时就延迟到了子类中去实现在更改某个读取文件的函数时不会影响到其他读取文件的功能。
http://www.hkea.cn/news/14356919/

相关文章:

  • 谷歌找网站后台让别人做网站的话术
  • 做网站电子版报价模板网页开发者工具怎么用
  • 做一个销售网站需要多少钱做网站是用c 吗
  • 程序员做网站美工能过关吗免费模板建站
  • 丰浩网站建设中心网站建设筹备方案
  • 汽配信息门户网站模板网络推广公司营业执照
  • 金融理财网站建设莲湖微网站建设
  • 儿童网站开发 论文装潢设计装修
  • 肥料网站建设 中企动力平面广告设计要学的软件
  • 做流量网站要做哪一种河北招投标公共服务平台
  • 网站首页布局seo国外校园网站建设
  • 做棋牌开发的网站竞价软件哪个好
  • 网站ip和pv网站怎么添加广告
  • 女朋友在互联网公司做网站国防教育网站建设方案
  • 肇庆高端品牌网站建设wordpress 怎么打开
  • 购物网站建设款流程如何查询网站的空间
  • 一个网站开发流程网站seo诊断书
  • 灵犀 科技高端网站建设企业邮箱要钱吗
  • 后台网站下载学前端要多久
  • 住房和城乡建设部网站安全分会个人网页制作模板图片代码
  • 好大夫王建设在线个人网站wordpress 购物车插件
  • 广州网站建设定制医院网站建设情况说明书
  • 北京网页设计公司网站网站建设排名优化技巧
  • 中山好的网站建设公司哪家好重庆相亲网
  • 帮人做网站推选的公司苏州网站网页设计
  • 网站建设申请方案文样织梦网站如何转百度小程序同步
  • 坂田做网站多少钱陕西省建设工程质量监督站网站
  • 电子商务网站建设与管理小论文互联网网站模板
  • 石家庄免费建站模板门户网站包括哪些
  • 怎样优化自己的网站表白二维码制作网站