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

自贡做网站的公司seo快速排名外包

自贡做网站的公司,seo快速排名外包,移动互联网开发记事本项目告别,建设工程合同违约金上限1、模板方法模式 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 特点:通过把不变的行为搬移到超类,去除子类中重复的代…

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
{IEnumerable<KeyValuePair<string,string>> ReadFile();
}//定义读取文件,封装重复代码,将可变的行为延迟到子类中实现
public abstract class AFileRead : IFileRead
{public IEnumerable<KeyValuePair<string, 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.mmbaike.com/news/94311.html

相关文章:

  • 北京轨道交通建设公司网站网站推广内容
  • 网络科技有限公司电话怎么优化网络
  • 在线字体设计网站国产免费crm系统有哪些
  • web手机版网站开发框架武汉做网络推广的公司
  • 建网站团队线上如何做推广
  • 寻找南昌网站设计单位站长工具权重
  • 网站内的搜索怎么做的百度公司的业务范围
  • 企业网站设计特点网站怎么快速被百度收录
  • java做网站的职业简述seo
  • 国外有哪些网站做推广的比较好公司官网优化方案
  • 电子商务网站设计岗位的技能要求网站怎么优化推广
  • 网站开发企业开发网络营销策划创意案例点评
  • 网站seo方案案例今日足球比赛分析推荐
  • 天津设计师网站大全如何开网店
  • 晋江文学城电脑版珠海seo排名收费
  • 日本 网站设计成都短视频代运营
  • 成都网站建设哪家好百度seo是什么意思呢
  • 网站建设与推广策划案案例百度商业平台官网
  • 华为弹性云做网站合肥seo排名扣费
  • 湘潭免费网站建设百度爱采购怎么推广
  • 网站备案表是什么360站长平台
  • 案例网站哪家培训机构学校好
  • 苏州网站推广建设惠州网站关键词排名
  • 网站优化公司怎么选色盲测试图片60张
  • 网址缩短生成器洛阳seo网络推广
  • 武汉网站建设设计成都百度网站排名优化
  • 浙江网站建设费用乔拓云智能建站官网
  • 学做点心上哪个网站google play商店
  • android做网站seo排名优化培训价格
  • 58同城成都网站建设郑州有没有厉害的seo