• 公用技术——设计模式——设计原则


    1、开关原则

      开关原则的英文是open for extension,close for modification。这个原则主要的目的是为了适应变化。

      当系统需要新功能时,在不修改原始类的基础上,添加新类对系统进行扩展,从而满足新功能。

      原则的关键点是为什么不能修改,个人理解有几个以下原因:

    1. 由于某些原因,已经无法修改,例如已经使用了很多年的框架,语言API等。
    2. 无法评估修改带来的影响,修改之后关联的功能都需要测试,新功能也需要去测试,甚至会导致之前功能产生BUG,这个是最不想看到的。

    2、依赖注入

      依赖注入的同义词有依赖反转,它的英文是Inversion of control,这个原则的核心思想是解耦,它与桥接模式的思想是相似的,依赖抽象而不是依赖具体的实现,将依赖的对象从编译阶段推迟到运行阶段,大大降低了耦合性。

      解耦的主要目的也是为了适应变化,耦合度低的项目更容易扩展,会极大的降低依赖对象之间的相互影响。

      原则的关键点是耦合度低的程序比耦合度高的程序有哪些优势,个人理解有以下几点。

    1. 降低彼此之间的相互影响,类似于现实生活中的”插拔式”。耦合度高的类似于生活中的”捆绑销售”。
    2. 依赖其抽象父类或接口,动态切换子类和接口实现类。新功能通过提供新子类或新的接口实现类来实现,便于扩展。

    3、接口隔离原则

      接口隔离原则的英文是Interface Segregation Principle,这个原则的目的在于client只需要关注自己需要实现的功能,而不是强制去实现所有的功能。

      它涉及到两种角色,一种是接口规范制定者,一种是client,接口规范实现者。

      例如在实现某些框架的自定义功能时,只需要重写功能相关的方法即可,而不是接口所有的方法。

      在JDK8之前,提供抽象类,默认的接口实现类等。在JDK8之后,为接口提供默认的实现。

    4、单一职责原则

      单一职责原则的英文是Single Responsibility Principle,这个原则的主要目的是抽象更贴近实际。

      在对需求进行抽象时,对象必须切合贴近所抽象事物,明确它的角色,功能,关系等。

      当对象存在多个职责时,首先会导致对象变的很臃肿,其次会导致重复代码很多,甚至导致整个系统变的很混乱,难以理解。

    5、里氏替换原则

      里氏替换原则的英文是Liskov’s Substitution Principle,Liskov是一位著名的科学家,她提出了该原则:“如果对于类型S的每个对象O1存在类型T的对象O2,那么对于所有定义了T的程序P来说,当用O1替换 O2并且S是T的子类型时,P的行为不会改变”。

      这句话我个人理解是:当client在调用父类实现某功能时,在创建父类时,从一种子类替换为另外一种子类,不会改变client想要实现的功能,而只是改变了功能的实现方式。

      原则描述的是两种关系,

      第一种是父类与子类之间的继承关系,此时父类的职责是子类职责的子集,

      第二种是接口与接口实现类之间的泛化关系,此时接口规范了需求功能,接口实现类提供了具体的实现方式。

  • 相关阅读:
    微信小程序在扫一扫进入小程序的时候 安卓手机后台继续运行的常规处理
    在微信小程序上,帮助中心界面实现类似手风琴案例
    使用artTemplate的模板引擎,使用简单
    使用原生JavaScript实现图片预加载,方法简单代码少
    在wepy框架中 使用promise对发送网络请求进行封装 包括post跟get请求
    JavaScript实现按字典排序进行md5加密, 以及个人在小程序也可以实现
    当在微信扫一扫进入小程序 并获取到二维码的参数 从而实现扫码进入小程序
    第九章:看看精彩的世界-使用网络技术
    玉渊潭公园
    军事博物馆
  • 原文地址:https://www.cnblogs.com/rain144576/p/12330113.html
Copyright © 2020-2023  润新知