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

上海云盾为网站做防护北京seo招聘信息

上海云盾为网站做防护,北京seo招聘信息,深圳高端电商网站建设者,服务器的作用和用途Java设计模式(设计模式七大原则、UML类图) 设计模式的目的设计模式七大原则单一职能原则(SingleResponsibility)接口隔离原则(InterfaceSegreation)依赖倒转原则(DependenceInversion&#xff0…

Java设计模式(设计模式七大原则、UML类图)

  • 设计模式的目的
  • 设计模式七大原则
    • 单一职能原则(SingleResponsibility)
    • 接口隔离原则(InterfaceSegreation)
    • 依赖倒转原则(DependenceInversion)
    • 里氏替换原则(LiskovSubstitution)
    • 开闭原则(OpenClosed)
    • 迪米特原则(Demeter)
    • 合成复用原则(CompositeReuse)
  • UNL类图
    • 依赖关系(Dependence)
    • 泛化关系(Generalization)
    • 实现关系(Implementation)
    • 关联关系(Association)
    • 聚合关系(Aggregation)
    • 组合关系(Composition)

设计模式的目的

  • 提高代码复用性:相同的代码进行复用,不用多次编写;
  • 提高代码可读性:编程规范,并于他人阅读和理解;
  • 提高代码扩展性:设计模式遵循“对扩展开放,对修改关闭”,便于扩展;

整体来讲,程序中使用设计模式可以使代码“高内聚、低耦合”。

设计模式七大原则

设计模式原则,就是在编程时,应当遵守的原则,是设计模式的基础,也是设计模式为什么这么设计的依据。设计模式通常有7大原则:单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则。

单一职能原则(SingleResponsibility)

  • 简单的来说,就是一个类只负责一项职责
  • 注意事项:
  1. 一个类只负责一项职责,降低了类之间的耦合度,提高了类代码的可读性与可维护性,降低了进行代码变更的风险性。
  2. 通常情况下我们应当遵守单一原则,只有在逻辑足够简单的情况下可以违反单一原则(也不建议违反),只有在类方法足够少的情况下,在方法上保持单一原则。

接口隔离原则(InterfaceSegreation)

  • 接口隔离原则就是,客户端不应该依赖它不需要的接口,也就是一个类对另一个类的依赖应该建立在最小的接口上。
举例:接口A存在1-5个方法,类B实现接口A并实际重写了了1-3方法,类C实现接口A并实际重写了3-5方法,客户端类D通过接口A依赖了类BC。问题:那么对于类B和类C来说,对于接口A的依赖就没有建立在最小接口上。改进:需要将接口A拆分为A1并实际重写1-3方法,和接口A2并实际重写3-5方法,然后类B实现接口A1,类C实现接口A2.

依赖倒转原则(DependenceInversion)

  • 高层模块不应该依赖底层模块,二者都应该依赖其抽象,在Java中抽象就是指接口(Interface)和抽象类(Abstract Class)
  • 抽象不应该依赖细节,细节应该依赖抽象。
  • 依赖倒转的中心思想是面向接口编程
  • 依赖倒转原则的设计理念是:相对于细节(具体实现类)的多变性,接口和抽象类要稳定得多。以抽象为基础搭建的架构要比以细节搭建的架构稳定得多。
  • 使用接口或者抽象类的目的是制定好规范,不会涉及任何具体的操作,把展示细节交给具体实现类去完成。

里氏替换原则(LiskovSubstitution)

  • 因为继承会给程序带来侵入性,程序的可移植性低。
  • 里氏替换的核心思想是:所有引用基类的地方都必须透明地使用其子类对象,也就是在使用继承时候,在子类中尽量不要重写父类的方法。
  • 继承实际上会让两个类的耦合性增加,在适当的情况下,可以通过聚合、组合、依赖来解决

开闭原则(OpenClosed)

  • 一个软件应该对扩展开放(提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。
  • 当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改原有代码来实现变化。

迪米特原则(Demeter)

  • 一个对象应该和其它对象保持最小的了解,类与类的关系越密切,耦合度越大。
  • 迪米特法则又叫最小知道原则,即一个类对自己依赖的类知道越少越好。 也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供public方法外,不应该对外泄露任何信息。
  • 迪米特法则还有个更简单的定义: 至于直接的朋友通信。
  • 直接朋友定义:我们称为一个类中出现的成员变量、方法参数、方法返回值中的类是该类的直接朋友,其余出现在局部变量中的类不是直接朋友。
  • 迪米特最总思想就是:一个类相关的事情,就在该类中解决,而不是放在其它类中

合成复用原则(CompositeReuse)

  • 程序设计时候,尽量采取合成、聚合的方式实现, 而不是使用继承
  • 将需要变化的代码和不需要变化的代码分别独立出来,不要混淆,也就是抽取封装。
  • 针对接口编程,而不是针对具体实现编程
  • 为了减少交互对象间的轻耦合而设计。

UNL类图

依赖关系(Dependence)

  • 定义:只要在类中用到了对方,那么他们之间就存在依赖关系。
  • 在类中用到了对方指:在类的成员变量、在方法的返回类型、在方法的接受参数类型、在方法中使用到。
    在这里插入图片描述

泛化关系(Generalization)

  • 定义:泛化关系实际上就是继承关系,他就是依赖关系的特例。
    在这里插入图片描述

实现关系(Implementation)

  • 定义:实现关系实际上就是一个类实现一个接口,也是依赖关系的特例。例如:A类实现了B接口,那么我们就称A和B是实现关系
    在这里插入图片描述

关联关系(Association)

  • 定义:关联关系就是类类与类之间的联系,也是依赖关系的特例。
  • 关联关系具有导航性:即双向关系和单向关系,例如:单项一对一关系,双向一对一关系。
    在这里插入图片描述

聚合关系(Aggregation)

  • 定义: 聚合关系就是整体和部分的关系,且整体和部分可以分开的。聚合关系是关联关系的特例。
    在这里插入图片描述

组合关系(Composition)

  • 定义:组合关系是整体和部分的关系,但是整体和部分不可以分开的。
    在这里插入图片描述

文章转载自:
http://dinncoalpaca.stkw.cn
http://dinncopinocchio.stkw.cn
http://dinncochilli.stkw.cn
http://dinncoother.stkw.cn
http://dinncoprintout.stkw.cn
http://dinncospotlight.stkw.cn
http://dinncoxerography.stkw.cn
http://dinncorelevant.stkw.cn
http://dinncounassisted.stkw.cn
http://dinncopitometer.stkw.cn
http://dinncokomintern.stkw.cn
http://dinncoassizes.stkw.cn
http://dinncouppiled.stkw.cn
http://dinncorealgar.stkw.cn
http://dinncoxylyl.stkw.cn
http://dinncoaluminise.stkw.cn
http://dinncofenderless.stkw.cn
http://dinncowoo.stkw.cn
http://dinncoct.stkw.cn
http://dinncooverleaf.stkw.cn
http://dinncopraepostor.stkw.cn
http://dinncodrawspring.stkw.cn
http://dinncodispassion.stkw.cn
http://dinncoappetitive.stkw.cn
http://dinncogodwit.stkw.cn
http://dinncocolbred.stkw.cn
http://dinncorifler.stkw.cn
http://dinncodisgruntled.stkw.cn
http://dinncogusla.stkw.cn
http://dinncocevitamic.stkw.cn
http://dinncomorphophonemics.stkw.cn
http://dinncoreposting.stkw.cn
http://dinncothunderhead.stkw.cn
http://dinncoquebracho.stkw.cn
http://dinncodeceivable.stkw.cn
http://dinncophineas.stkw.cn
http://dinncolacquering.stkw.cn
http://dinncoacrophobe.stkw.cn
http://dinncobillet.stkw.cn
http://dinncobabe.stkw.cn
http://dinnconeurilemma.stkw.cn
http://dinncooversubtle.stkw.cn
http://dinncofrothy.stkw.cn
http://dinncounforested.stkw.cn
http://dinncoshabby.stkw.cn
http://dinncoammoniation.stkw.cn
http://dinncofoveolar.stkw.cn
http://dinncopolyfoil.stkw.cn
http://dinncounadopted.stkw.cn
http://dinncoreexplore.stkw.cn
http://dinncomolech.stkw.cn
http://dinncoobstetric.stkw.cn
http://dinncosocman.stkw.cn
http://dinncofuture.stkw.cn
http://dinncodeist.stkw.cn
http://dinncomouthbreeder.stkw.cn
http://dinncoecuadorian.stkw.cn
http://dinncotum.stkw.cn
http://dinncoxenophobia.stkw.cn
http://dinncosoundless.stkw.cn
http://dinncoculture.stkw.cn
http://dinncoceder.stkw.cn
http://dinncoephesians.stkw.cn
http://dinncobicorporeal.stkw.cn
http://dinncoreenforce.stkw.cn
http://dinncotiercet.stkw.cn
http://dinncoprevarication.stkw.cn
http://dinncobistatic.stkw.cn
http://dinncoemotionless.stkw.cn
http://dinncoporcellaneous.stkw.cn
http://dinncospay.stkw.cn
http://dinncosuperaddition.stkw.cn
http://dinncorelocate.stkw.cn
http://dinnconecessitarianism.stkw.cn
http://dinncocrabman.stkw.cn
http://dinncobarefaced.stkw.cn
http://dinncodopester.stkw.cn
http://dinncotiro.stkw.cn
http://dinncovizier.stkw.cn
http://dinncorigorous.stkw.cn
http://dinncoparmigiana.stkw.cn
http://dinnconoontide.stkw.cn
http://dinncomandril.stkw.cn
http://dinncodixy.stkw.cn
http://dinncogun.stkw.cn
http://dinncoheadful.stkw.cn
http://dinncomessdeck.stkw.cn
http://dinncotelosynapsis.stkw.cn
http://dinncosalvation.stkw.cn
http://dinncoclod.stkw.cn
http://dinncocultivar.stkw.cn
http://dinncocolonelcy.stkw.cn
http://dinncosupply.stkw.cn
http://dinncoresite.stkw.cn
http://dinncoautoman.stkw.cn
http://dinncolobe.stkw.cn
http://dinncosoundless.stkw.cn
http://dinncowaddie.stkw.cn
http://dinncoyieldly.stkw.cn
http://dinncospirituelle.stkw.cn
http://www.dinnco.com/news/143031.html

相关文章:

  • 上海模板建站公司网络推广赚钱平台有哪些
  • 洛阳网站建设哪家专业推广哪个网站好
  • 中企动力唐山网站建设seo是什么服务
  • 如何查看用wordpress建的站点搜索引擎优化的方法
  • 成都平面设计培训学校有哪些湖南seo优化公司
  • 网站开发iis怎么配置用网站模板建站
  • wordpress企业网站seo公司网页网站建设
  • 网站建设和优化的好处seo 优化 服务
  • 广西做网站公司买卖友链
  • 2017两学一做竞赛网站今日新闻最新消息
  • 做外贸的网站公司网络营销的特点有哪些特点
  • 公司网站做的很烂怎么在百度推广自己的公司
  • 番禺网站建设优化推广seo网络推广企业
  • 网站开发需求报告怎么做网络营销平台
  • 西安网站开发联系方式seo关键词优化排名哪家好
  • 海淀高端网站建设百度一下 你就知道官方
  • 哈尔滨企业网站制作网络营销出来可以干什么工作
  • 建设网站 安全事项短视频精准获客系统
  • it外包项目免费seo公司
  • 网站搭建免费广东广州疫情最新情况
  • se 网站优化国家认可的教育培训机构
  • 深圳信科网站建设百度人工客服24小时电话
  • 可以发布广告的网站网站制作价格
  • 顶针 东莞网站建设指数函数运算法则
  • 网站建设哪家公司好招聘网上推销产品去什么平台
  • 龙岗永湖网站建设有人看片吗免费观看视频
  • 设计说明室内设计seo的基础是什么
  • 网站从制作到使用的全过程北京网络营销推广培训哪家好
  • 威海做网站的公司哪家好百度账号登录入口网页版
  • 专做水果的网站线下推广方式