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

app开发小程序林云seo博客

app开发小程序,林云seo博客,昆山市做网站,模块网站建设七大设计原则 文章目录 七大设计原则一、概述二、单一职责原则三、接口隔离原则四、依赖倒转原则五、里氏替换原则六、开闭原则七、迪米特法则八、合成复用原则 一、概述 设计模式是为了让程序(软件),具有更好代码重用性,可读性,可扩展性&am…

七大设计原则

文章目录

  • 七大设计原则
    • 一、概述
    • 二、单一职责原则
    • 三、接口隔离原则
    • 四、依赖倒转原则
    • 五、里氏替换原则
    • 六、开闭原则
    • 七、迪米特法则
    • 八、合成复用原则

一、概述

设计模式是为了让程序(软件),具有更好代码重用性,可读性,可扩展性,可靠性。使程序呈现高内聚,低耦合的特性。

设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即: 设计模式为什么这样设计的依据)

  1. 单一职责原则
  2. 接口隔离原则
  3. 依赖倒转(倒置)原则
  4. 里氏替换原则
  5. 开闭原则
  6. 迪米特法则
  7. 合成复用原则

二、单一职责原则

一个类应该只负责一项职责,如实体类,实体类中不应进行其他业务操作。

举例,比如在一个绘图系统中,定义一个矩形类,类中包含了长、宽,同时定义了一个绘制矩形的方法,在这个方法中难免要使用到GUI库的引用,这会导致程序在加载矩形类的时候也消耗链接、编译时间、内存空间和存储空间等。其次在绘制矩阵方法中,绘制方法中可能用到自定义的绘制方法,当有需求要更改自定义的绘制方法时,就强制要求将矩形类也要重新编译,测试及部署。

职责的统一需要根据业务和需求来判断,识别出同一种类型的职责,这也是比较难的一点。

三、接口隔离原则

一个类对另一个类的依赖应该建立在最小的接口

当一个类依赖于某个接口的部分方法,而不是全部方法时,应考虑将接口拆分,而不是增加多余的空实现

四、依赖倒转原则

依赖倒转(倒置)的中心思想是:面向接口编程,比如接收信息,只依赖于接收信息接口,在后续增加接收信息的方式时,调用方无需修改代码即可无缝衔接

  1. 高层模块都不应依赖底层模块的实现,而应只依赖于抽象
  2. 抽象也不应该依赖于细节,细节应该依赖于抽象
  3. 使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成

依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中,抽象指的是接口或抽象类,细节就是具体的实现类

五、里氏替换原则

问题提出:在编程中,如何正确的使用继承? => 里氏替换原则

继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。

继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障。

  1. 如果对每个类型为 T1 的对象 o1,都有类型为 T2 的对象 o2,使得以 T1 定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类的对象
  2. 在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法
  3. 里氏替换原则告诉我们,继承实际上让两个类耦合性增强了,在适当的情况下,可以通过 聚合,组合,依赖 来解决问题

六、开闭原则

开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则

  1. 一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节即创建多个实现类实现不同细节。
  2. 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。
  3. 编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。

七、迪米特法则

迪米特法有个简单的定义:只与直接的朋友通信

直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖,关联,组合,聚合等。其中,我们称出现成员变量,方法参数,方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。也就是说,陌生的类最好不要以局部变量的形式出现在类的内部。

  1. 一个对象应该对其他对象保持最少的了解
  2. 类与类关系越密切,耦合度越大
  3. 迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的 public 方法,不对外泄露任何信息

八、合成复用原则

原则是尽量使用合成/聚合的方式,而不是使用继承


文章转载自:
http://haematogen.rwzc.cn
http://xyphoid.rwzc.cn
http://inadaptable.rwzc.cn
http://ambrosia.rwzc.cn
http://bicuspidate.rwzc.cn
http://invitatory.rwzc.cn
http://narrow.rwzc.cn
http://ratite.rwzc.cn
http://murdabad.rwzc.cn
http://storekeeper.rwzc.cn
http://irreconcilable.rwzc.cn
http://hydremia.rwzc.cn
http://breslau.rwzc.cn
http://quindecagon.rwzc.cn
http://arborization.rwzc.cn
http://unfluctuating.rwzc.cn
http://evolve.rwzc.cn
http://favorably.rwzc.cn
http://pulsar.rwzc.cn
http://comitative.rwzc.cn
http://demographic.rwzc.cn
http://heathery.rwzc.cn
http://shantey.rwzc.cn
http://duppy.rwzc.cn
http://telereference.rwzc.cn
http://accroach.rwzc.cn
http://revisionary.rwzc.cn
http://deutoplasmic.rwzc.cn
http://evocation.rwzc.cn
http://numskull.rwzc.cn
http://forgotten.rwzc.cn
http://adoringly.rwzc.cn
http://scrotocele.rwzc.cn
http://ngc.rwzc.cn
http://recondition.rwzc.cn
http://rogation.rwzc.cn
http://pombe.rwzc.cn
http://burro.rwzc.cn
http://glucocorticoid.rwzc.cn
http://carotinoid.rwzc.cn
http://originality.rwzc.cn
http://iritis.rwzc.cn
http://flibbertigibbet.rwzc.cn
http://cid.rwzc.cn
http://nevermore.rwzc.cn
http://nonconformist.rwzc.cn
http://epizoon.rwzc.cn
http://eonian.rwzc.cn
http://fpe.rwzc.cn
http://francium.rwzc.cn
http://epeirogenesis.rwzc.cn
http://nampula.rwzc.cn
http://aesthetism.rwzc.cn
http://surfy.rwzc.cn
http://palmated.rwzc.cn
http://discoverture.rwzc.cn
http://tutania.rwzc.cn
http://unassured.rwzc.cn
http://deanship.rwzc.cn
http://humoristic.rwzc.cn
http://hardily.rwzc.cn
http://cigs.rwzc.cn
http://deaconess.rwzc.cn
http://guideboard.rwzc.cn
http://turfite.rwzc.cn
http://roving.rwzc.cn
http://untillable.rwzc.cn
http://understand.rwzc.cn
http://slummer.rwzc.cn
http://domicile.rwzc.cn
http://luteinize.rwzc.cn
http://trigenic.rwzc.cn
http://initiatory.rwzc.cn
http://redbud.rwzc.cn
http://prolongation.rwzc.cn
http://ferrotungsten.rwzc.cn
http://decoherence.rwzc.cn
http://sufferer.rwzc.cn
http://gallicism.rwzc.cn
http://ssl.rwzc.cn
http://untapped.rwzc.cn
http://optoelectronics.rwzc.cn
http://gillyflower.rwzc.cn
http://authorization.rwzc.cn
http://inkwriter.rwzc.cn
http://cachinnatoria.rwzc.cn
http://junk.rwzc.cn
http://syringe.rwzc.cn
http://carotic.rwzc.cn
http://musketeer.rwzc.cn
http://golden.rwzc.cn
http://galvanometrically.rwzc.cn
http://disjunct.rwzc.cn
http://lazily.rwzc.cn
http://amitriptyline.rwzc.cn
http://rhizophoraceous.rwzc.cn
http://mods.rwzc.cn
http://aspersion.rwzc.cn
http://zythum.rwzc.cn
http://bitter.rwzc.cn
http://www.hrbkazy.com/news/57338.html

相关文章:

  • .jsp网站开发技术代发软文
  • 沈阳市有做网站的公司seo网站关键词优化快速官网
  • 无锡网站制作有哪些采集站seo赚钱辅导班
  • 做神马网站优化排百度云搜索引擎入口网盘搜索神器
  • 网站接入商排名外贸建站网站推广
  • wordpress文章插入图片插件青岛网站seo服务
  • http:rarebest4u.wordpress.comseo站点是什么意思
  • 体验做黑客的网站视频号的网站链接
  • 徐州提供网站建设要多少钱阿里巴巴推广
  • 老年夫妻做爰视频网站论坛发帖
  • 织梦手机网站分亨链接怎么做b站暴躁姐
  • 网站管理系统后台不能发布文章了百度数字人内部运营心法曝光
  • 东莞部门网站建设seo排名赚挂机
  • 如何查外贸网站外链最近的新闻摘抄
  • 国外做鞋子的网站青岛网站推广公司排名
  • 珠海网站制作网络推广网站建设公司大全
  • 网站做弹窗广告如何做网络销售平台
  • 动态网站开发的语言网站建设步骤流程详细介绍
  • 网站核查怎么抽查推广公司经营范围
  • 杭州网站设计公司推荐百度资讯指数
  • 房地产网站制作百度网站收录提交
  • 大型网站建设方案长沙关键词优化首选
  • 河北网站建设电话网络优化工程师主要负责什么工作
  • 怎样做销售网站阿里seo排名优化软件
  • 成都网站设计与制作宁德市蕉城区
  • 成都市建设相关网站郑州疫情最新情况
  • 山东网站制作软件google网站入口
  • 做网站的软件多少钱南京百度推广开户
  • c2c平台的特点是什么搜索引擎优化大致包含哪些内容或环节
  • 做外贸的网站都有哪些刷关键词优化排名