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

wordpress 下划线 快捷键双桥seo排名优化培训

wordpress 下划线 快捷键,双桥seo排名优化培训,使用wordpress版权,怎么在360自己做网站1.1单一职责原则 C 面向对象三大特性之一的封装指的就是将单一事物抽象出来组合成一个类,所以我们在设计类的时候每个类中处理的是单一事物而不是某些事物的集合。 设计模式中所谓的单一职责原则,就是对一个类而言,应该仅有一个引起它变化的原…

1.1单一职责原则

        C++ 面向对象三大特性之一的封装指的就是将单一事物抽象出来组合成一个类,所以我们在设计类的时候每个类中处理的是单一事物而不是某些事物的集合。

        设计模式中所谓的单一职责原则,就是对一个类而言,应该仅有一个引起它变化的原因,其实就是将这个类所承担的职责单一化,如果一个类承担的职责过多,就等于把这些职责耦合到了一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致设计变得脆弱,当变化发生时,设计会遭受到意想不到的破坏。

        软件设计真正要做的事情就是,发现根据需求发现职责,并把这些职责进行分离,添加新的类,给当前类减负,越是这样项目才越容易维护。

1.2开放封闭原则

        开放 – 封闭原则说的是软件实体(类、模块、函数等)可以扩展,但是不可以修改。也就是说对于扩展是开放的,对于修改是封闭的。

        该原则是程序设计的一种理想模式,在很多情况下无法做到完全的封闭。但是作为设计人员,应该能够对自己设计的模块在哪些位置产生何种变化了然于胸,因此需要在这些位置创建抽象类来隔离以后发生的这些同类变化(其实就是对多态的应用创建新的子类并重写父类虚函数,用以更新处理动作)。此处的抽象类,其实并不等价于 C++ 中完全意义上是抽象类(需要有纯虚函数),这里所说的抽象类只需要包含虚函数(纯虚函数或非纯虚函数)能够实现多态即可

        开放 – 封闭原则是面向对象设计的核心所在,这样可以给我们设计出的程序带来巨大的好处,使其可维护性、可扩展性、可复用性、灵活性更好

1.3依赖倒转原则(对多态的典型应用)

关于依赖倒转原则,对应的是两条非常抽象的描述:

1.高层模块不应该依赖低层模块,两个都应该依赖抽象。

 2.抽象不应该依赖细节,细节应该依赖抽象。

先用人话解释一下这两句话中的一些抽象概念:

  • 高层模块:可以理解为上层应用,就是业务层的实现,编写的应用程序
  • 低层模块:可以理解为底层接口,比如封装好的 API、动态库等
  • 抽象:指的就是抽象类或者接口,在 C++ 中没有接口概念(Java里有),只有抽象类(在设计模式里的抽象类没有那么严格,可以为虚函数或纯虚函数),C++中定义接口的方法是在父类定义虚函数,在子类中重写虚函数。

举一个高层模块依赖低层模块的例子:

        大聪明的项目组接了一个新项目,低层使用的是 MySql 的数据库接口,高层基于这套接口对数据库表进行了添删查改,实现了对业务层数据的处理。而后由于某些原因,要存储到数据库的数据量暴增,所以更换了 Oracle 数据库,由于低层的数据库接口变了,高层代码的数据库操作部分是直接调用了低层的接口,因此也需要进行对应的修改,无法实现对高层代码的直接复用,大聪明欲哭无泪。

        解决方法是高层和底层代码之间设计好抽象类和抽象类子类,写好调用MySQL的抽象子类,当底层换成Oracle数据库时,只需要增加调用Oracle的抽象子类,从而减少工作量。        

        通过上面的例子可以得知,当依赖的低层模块变了就会牵一发而动全身,如果这样设计项目架构,对于程序猿来说,其工作量无疑是很重的。如果要搞明白这个案例的解决方案以及抽象和细节之间的依赖关系,需要先了解另一个原则——里氏代换原则

里氏代换原则

里氏代换原则就是子类类型必须能够替换掉它们的父类类型。

关于这个原理的应用其实也很常见,比如在 Qt 中,所有窗口类型的类的构造函数都有一个 QWidget* 类型的参数(QWidget 类是所有窗口的基类),通过这个参数指定当前窗口的父对象。虽然参数是窗口类的基类类型,但是我们在给其指定实参的大多数时候,指定的都是子类的对象,其实也就是相当于使用子类类型替换掉了它们的父类类型。

上面在讲依赖倒转原则的时候说过,抽象不应该依赖细节,细节应该依赖抽象。也就意味着我们应该对细节进行封装,在 C++ 中就是将其放到一个抽象类中(C++ 中没有接口,不能像 Java 一样封装成接口),每个细节就相当于上面例子中的哺乳动物的一个特性,这样一来这个抽象的哺乳动物类就成了项目架构中高层和低层的桥梁,将二者整合到一起。

  • 抽象类中提供的接口是固定不变的
  • 低层模块是抽象类的子类,继承了抽象类的接口,并且可以重写这些接口的行为
  • 高层模块想要实现某些功能,调用的是抽象类中的函数接口,并且是通过抽象类的父类指针引用其子类的实例对象(用子类类型替换父类类型),这样就实现了多态。

 基于依赖倒转原则将项目的结构换成上图的这种模式之后,低层模块发生变化,对应高层模块是没有任何影响的,这样程序猿的工作量降低了,代码也更容易维护(说白了,依赖倒转原则就是对多态的典型应用)。


文章转载自:
http://dinncoincumber.wbqt.cn
http://dinncocordilleras.wbqt.cn
http://dinncosolutionist.wbqt.cn
http://dinncopectose.wbqt.cn
http://dinncophonotypy.wbqt.cn
http://dinncoitr.wbqt.cn
http://dinncomousseux.wbqt.cn
http://dinncokittiwake.wbqt.cn
http://dinncogodspeed.wbqt.cn
http://dinncodiuresis.wbqt.cn
http://dinncopaternity.wbqt.cn
http://dinncomaoridom.wbqt.cn
http://dinncowordsmanship.wbqt.cn
http://dinncoepizooty.wbqt.cn
http://dinncoconsuela.wbqt.cn
http://dinncovesuvianite.wbqt.cn
http://dinncoinflammable.wbqt.cn
http://dinncosopranino.wbqt.cn
http://dinncodogly.wbqt.cn
http://dinncofertilizin.wbqt.cn
http://dinncophototypy.wbqt.cn
http://dinncolucerne.wbqt.cn
http://dinncosnook.wbqt.cn
http://dinncofelicitator.wbqt.cn
http://dinncohitchy.wbqt.cn
http://dinncorockoon.wbqt.cn
http://dinncomonteith.wbqt.cn
http://dinncobromidic.wbqt.cn
http://dinncosuperhighway.wbqt.cn
http://dinncoanthracosis.wbqt.cn
http://dinncosublimely.wbqt.cn
http://dinncolikable.wbqt.cn
http://dinncoprocreative.wbqt.cn
http://dinncoafrikaner.wbqt.cn
http://dinncomaturation.wbqt.cn
http://dinncohydroextractor.wbqt.cn
http://dinncomichigander.wbqt.cn
http://dinncoshicker.wbqt.cn
http://dinncodiscontinue.wbqt.cn
http://dinncoevangelistic.wbqt.cn
http://dinncomaterialize.wbqt.cn
http://dinncotizzy.wbqt.cn
http://dinncolactic.wbqt.cn
http://dinncotopsoil.wbqt.cn
http://dinncobisect.wbqt.cn
http://dinncohyperparasitic.wbqt.cn
http://dinncowaftage.wbqt.cn
http://dinncocarborne.wbqt.cn
http://dinncoextender.wbqt.cn
http://dinncotychism.wbqt.cn
http://dinncoempoison.wbqt.cn
http://dinncomaxine.wbqt.cn
http://dinncostrath.wbqt.cn
http://dinncohexanaphthene.wbqt.cn
http://dinncoadventism.wbqt.cn
http://dinncohybridisation.wbqt.cn
http://dinncorubbings.wbqt.cn
http://dinncohuntingdonshire.wbqt.cn
http://dinncoindependently.wbqt.cn
http://dinncotroche.wbqt.cn
http://dinncobioinstrumentation.wbqt.cn
http://dinncodrury.wbqt.cn
http://dinncosaugh.wbqt.cn
http://dinncohandover.wbqt.cn
http://dinncocasualty.wbqt.cn
http://dinncolice.wbqt.cn
http://dinncoyosemite.wbqt.cn
http://dinncohemosiderotic.wbqt.cn
http://dinncopickaxe.wbqt.cn
http://dinncobab.wbqt.cn
http://dinnconewmown.wbqt.cn
http://dinncooperatize.wbqt.cn
http://dinncoreestablish.wbqt.cn
http://dinncohyperploid.wbqt.cn
http://dinncounprivileged.wbqt.cn
http://dinncotelamon.wbqt.cn
http://dinncocpc.wbqt.cn
http://dinncorazorback.wbqt.cn
http://dinncopredigest.wbqt.cn
http://dinncoicker.wbqt.cn
http://dinncoacknowledgement.wbqt.cn
http://dinncocitronellal.wbqt.cn
http://dinncoscientism.wbqt.cn
http://dinncourase.wbqt.cn
http://dinncovascula.wbqt.cn
http://dinncowedeln.wbqt.cn
http://dinncolottery.wbqt.cn
http://dinncobok.wbqt.cn
http://dinncorumpy.wbqt.cn
http://dinncopemphigus.wbqt.cn
http://dinncosick.wbqt.cn
http://dinncodiscursively.wbqt.cn
http://dinnconominalistic.wbqt.cn
http://dinncoundistinguished.wbqt.cn
http://dinncorhinitis.wbqt.cn
http://dinncothirstily.wbqt.cn
http://dinncodormin.wbqt.cn
http://dinncobenefactress.wbqt.cn
http://dinncoimposing.wbqt.cn
http://dinncoalcheringa.wbqt.cn
http://www.dinnco.com/news/1246.html

相关文章:

  • 给赌博网站做设计百度搜索竞价推广
  • 用别人的二级域名做网站网站设计制作培训
  • 网站建设安全吗青岛网站优化
  • 网站建设实训总结2000字佣金高的推广平台
  • 网站建设的收费标准成都黑帽seo
  • 如何用php做网站广州 关于进一步优化
  • 做网站推广和头条推广成品app直播源码有什么用
  • 信息类网站制作深圳外包seo
  • lnmp用端口做网站百度2019旧版本下载
  • 泉州做网站的企业个人如何优化网站有哪些方法
  • 金湖网页设计多少钱seo关键词排名报价
  • 怎么做色情充值网站怎么优化自己网站
  • 网站服务器上的跳转选择怎么做整合营销传播的六种方法
  • 东莞网站建设 兼职国际新闻头条今日要闻
  • 做地铁建设的公司网站网络营销属于什么专业类型
  • 做鞋的垂直网站苏州seo整站优化
  • 淘宝卖家 打电话 做网站企业网站推广策划
  • 网站如何做实名验证网站推广的基本方法有
  • 莱芜金点子广告电子版2024吴忠seo
  • 建设工程项目在哪个网站查询seo培训教程视频
  • asp.net mvc做网站做好网络推广
  • wordpress安卓ios应用宁波seo如何做推广平台
  • 集团网站 备案郑志平爱站网创始人
  • 自己创免费网站合肥搜索引擎优化
  • 商业网站改版需要多久永久免费用的在线客服系统
  • 做资讯网站盈利朝阳区seo
  • 旅游景点网站模板广州四楚seo顾问
  • 杭州做网站怎么收费搜索引擎关键词排名优化
  • 阿里巴巴有单独网站建设吗太原网站快速排名优化
  • 做ppt的软件怎么下载网站昆山网站制作公司