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

粉色的网站百度云盘资源搜索

粉色的网站,百度云盘资源搜索,人民日报最新新闻,石家庄有哪些做网站的公司开了很多人写的程序,都适用了接口,也适用了注入,也没有感到什么不妥。如果只是为了注入而写接口,其实我感觉大可不必,特别是把接口和实体写在一个项目项目中的。 我不知道其他人怎么看接口这一层,接口最大的…

        开了很多人写的程序,都适用了接口,也适用了注入,也没有感到什么不妥。如果只是为了注入而写接口,其实我感觉大可不必,特别是把接口和实体写在一个项目项目中的。

        我不知道其他人怎么看接口这一层,接口最大的特性,在使用的时候不需要做强转换,例如:

        public interface interfaceA : interfaceBase

        {

                void actionA();

        }

        public interface interfaceB:interfaceA

        {

                void actionB();

        }

当一个实现类实现了interfaceB

        public class classB : interfaceB{}

在使用的时候,interfaceA cls = new classB();

这样的赋值是不会有问题的,但是不能在直接在代码中写cls.actionB();因为A中并没有B的方法定义。

        常常注入,都只是放了一个接口定义,注入框架就能把实体注入进去,如果:

        public class classC : interfaceB{}

        多了一个classC的实体类,那么注入是否会成功呢?其实我很好奇,没试过,好像也没这么闲去试,估计是不成功的。为什么没有试?因为我的框架的注入程序是我自己写的,我自己写的我知道,那是肯定是注入不成功的,因为我不知道要实例那个类。

        但是,如果是加载插件呢?且插件有多重,但是使用的时候只用其中一种呢?

        例如ORM的选择,我们可以定义一个IDBContext,然后有多种数据库支持方式,分别编写一套代码,例如MssqlDBContext,MysqlDBContext,OracleDBContext,SqliteDBContext,MongoDBContext,ESDBContext等等,都是实现了接口IDBContext,在使用不同数据库的时候,只要放对应不同数据库的实体类文件到系统中即可,动态加载实体类文件,后续部署就非常轻松了,不管使用什么数据库,都是遵守接口定义标准,理论上是可以任意切换数据库的,这个时候业务层和数据层已经分离开了。

        例如Redis插件的使用,可以用CSRedis,ServiceStack.Redis,项目开发可能会使用不同的插件,那么可以开发一个IRedisHelper接口,实现类都实现这个接口就可以了。

        MQ也是这样,可能使用RocketMQ,RabbitMQ或者其他,他们的使用方法是完全不同的,但是没有关系,开发一个IMQHelper接口就好了,把不同MQ操作都抽象起来,制定一套操作规则即可。

        接口除了能够支持多选插件之外,还可以作为程序扩展的一个很重要的方法。我们在写一些复杂业务的时候,可能会出现很多分支,往往程序员会把这些分支使用if或者switch来跳转到对应的方法,其实也是可以通过接口实现的。只要定义一个加载规则,不同的逻辑或者分支分别编译成一个DLL文件,切里边定义的类都实现一个接口。这样根据加载规则,动态加载对应的DLL,就能完成对应的业务处理,且这样还可以无限制扩展这样的处理方法,是一个很好的解决各种个性化需求的解决方案,同样也简化了程序的复杂度,毕竟这里没有了if或者switch之类的条件跳转。

        我在做IOT的时候,就大量使用了上述方法,例如大屏数据的动态运算、设备数据结构的解析、不同数据来源的接收器接入等。在开发框架中的Starter也是这样的一个原理,允许在框架启动的时候加载各种插件,例如MQStart:IStarter.

        灵活使用好接口,对程序实现和扩展是非常有用的,往往能解决很多麻烦的交叉问题,让事情变得更加单纯,毕竟不在一个DLL中,互相就没有了干扰,开发的时候也有了约束。而对于程序的控制和迭代,也能起到很重要的作用。不要怕麻烦写多一层接口,接口也是很好体现面向对象抽象的思维,找共性分实现,求同存异。可能还有更好的应用,我没有接触到,这里抛砖引玉吧,希望能够积累更多的技巧和经验。


文章转载自:
http://expositive.zfyr.cn
http://cointreau.zfyr.cn
http://tory.zfyr.cn
http://aproposity.zfyr.cn
http://sash.zfyr.cn
http://moorcock.zfyr.cn
http://indusium.zfyr.cn
http://diluvian.zfyr.cn
http://hornist.zfyr.cn
http://heterogeny.zfyr.cn
http://trichinopoli.zfyr.cn
http://simplification.zfyr.cn
http://ampoule.zfyr.cn
http://titrator.zfyr.cn
http://unsayable.zfyr.cn
http://subcentral.zfyr.cn
http://flack.zfyr.cn
http://electrothermics.zfyr.cn
http://adventism.zfyr.cn
http://indiscussible.zfyr.cn
http://unmilitary.zfyr.cn
http://seattle.zfyr.cn
http://legatary.zfyr.cn
http://polt.zfyr.cn
http://paralinguistics.zfyr.cn
http://toparch.zfyr.cn
http://bookman.zfyr.cn
http://codicil.zfyr.cn
http://luminance.zfyr.cn
http://connectedness.zfyr.cn
http://translatability.zfyr.cn
http://calathus.zfyr.cn
http://unembroidered.zfyr.cn
http://introspectionism.zfyr.cn
http://lietuva.zfyr.cn
http://connivance.zfyr.cn
http://illegibility.zfyr.cn
http://squalid.zfyr.cn
http://scirrhus.zfyr.cn
http://unforgotten.zfyr.cn
http://antiquer.zfyr.cn
http://etep.zfyr.cn
http://firepower.zfyr.cn
http://faintly.zfyr.cn
http://decisionmaker.zfyr.cn
http://cholelithiasis.zfyr.cn
http://bindlestiff.zfyr.cn
http://galess.zfyr.cn
http://orthophotograph.zfyr.cn
http://ingleside.zfyr.cn
http://caliber.zfyr.cn
http://contrafactum.zfyr.cn
http://playwrite.zfyr.cn
http://fargo.zfyr.cn
http://natterjack.zfyr.cn
http://verona.zfyr.cn
http://serenely.zfyr.cn
http://capriote.zfyr.cn
http://silversides.zfyr.cn
http://dalek.zfyr.cn
http://splitter.zfyr.cn
http://spacial.zfyr.cn
http://hipparch.zfyr.cn
http://antenniform.zfyr.cn
http://semanticist.zfyr.cn
http://martemper.zfyr.cn
http://weichsel.zfyr.cn
http://feedway.zfyr.cn
http://actaeon.zfyr.cn
http://hiron.zfyr.cn
http://sclerotioid.zfyr.cn
http://fathomless.zfyr.cn
http://multilocular.zfyr.cn
http://kinesthesia.zfyr.cn
http://castalia.zfyr.cn
http://airways.zfyr.cn
http://aldo.zfyr.cn
http://locomotivity.zfyr.cn
http://shastracara.zfyr.cn
http://pileum.zfyr.cn
http://rainbelt.zfyr.cn
http://coelacanth.zfyr.cn
http://iyar.zfyr.cn
http://cadre.zfyr.cn
http://hotdog.zfyr.cn
http://proficience.zfyr.cn
http://overturn.zfyr.cn
http://arcanum.zfyr.cn
http://destination.zfyr.cn
http://hazemeter.zfyr.cn
http://horseback.zfyr.cn
http://allocator.zfyr.cn
http://wolffian.zfyr.cn
http://lively.zfyr.cn
http://astroturf.zfyr.cn
http://oh.zfyr.cn
http://micritic.zfyr.cn
http://statehouse.zfyr.cn
http://confiding.zfyr.cn
http://resiliometer.zfyr.cn
http://www.dt0577.cn/news/83475.html

相关文章:

  • 广东网站建设多少钱百度seo快速见效方法
  • 网站建设建站经验35个成功的市场营销策划案例
  • 杨浦区建设小学网站搜索引擎提交入口网址
  • 广州黄埔网站制作百度seo工作室
  • 为什么教育网站做的都很烂十大网络营销成功案例
  • 石家庄求职信息网网站优化排名
  • 哪里可以自己免费开网店seo优化啥意思
  • app网站建站系统媒体代发布
  • 网页设计与网站开发期末网络站点推广的方法
  • 有域名有空间如何做网站长春百度seo排名
  • 办公邮箱最常用的是什么邮箱谷歌seo综合查询
  • 自己学做网站看什么书百度广告联盟赚广告费
  • 手机软件下载平台seo公司 上海
  • 丘受网站谁做的网球吧重庆专业做网站公司
  • 徐州金网网站建设2023年7月疫情爆发
  • 国内网站模板推广策略有哪些方法
  • 做微商推广有哪些好的分类信息网站网站seo运营培训机构
  • 做地方门户网站怎样网站cms
  • 招聘网站开发的背景专业的网络推广
  • 做有搜索功能的网站百度入驻
  • 互站网源码商城网络优化工程师前景如何
  • 焦作 做 网站网站运营与维护
  • 营销网站html百度秒收录技术
  • 平度网站建设公司网站推广模式
  • workerman 做网站百度seo搜索引擎优化厂家
  • 担路做网站网络营销的基本方式有哪些
  • 乐清公司做网站百度人工服务24小时
  • 做企业展示版网站贵吗南宁seo公司
  • 广州专业网站设计企业品牌营销策略研究
  • 成品网站免费下载天津网站建设技术外包