我是靠谱客的博主 爱笑跳跳糖,最近开发中收集的这篇文章主要介绍带你玩转六大设计原则,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

     首先我们来介绍一下6大设计原则都有哪些:

Single Responsibility Principle:单一职责原则
Open Closed Principle:开闭原则
Liskov Substitution Principle:里氏替换原则
Law of Demeter:迪米特法则
Interface Segregation Principle:接口隔离原则
Dependence Inversion Principle:依赖倒置原则

      我们可以看到把这6个原则的首字母(里氏替换原则和迪米特法则的首字母只取一个)联合起来就是Solid(稳定的),这代表了大师创造这些原则的初衷,就是要让程序更稳定,更健壮。

    开闭原则只是精神口号,而剩下的5个原则都是开闭原则的具体形态。那开闭原则又是什么呢?
    只要是做面向对象编程的,不管什么语言,在开发时都会提及开闭原则,它是为软件实体的未来事件而定制的对现行开发设计进行约束的一个原则。对一个程序后期的功能添加来说,改变高层次的模块比改变低层次的模块更加利于维护,添加功能时我们需要做到弱耦合,就是不能通过改了一个类中的方法而危害到其他的类或功能。再详细一点讲就是这种方法只对功能扩展开放而对修改关闭。
     如果你需要对程序进行扩展,你可以通过添加接口或者修改static静态模块区域来实现功能,方法有很多但是都是基于不改变类之间高内聚的基础。

     下面我们来看单一原则:
      单一原则就是一个接口或类只有一个原因引起变化,换句话说就是一个接口或类只有一个职责,他就负责一件事情。单一原则的优点:
1、降低类的复杂性,让人可以清晰明确的了解类的职责
2、复杂性降低后,可读性自然会提高
3、可读性提高后,可维护性自然也就提高了。
4、最重要的一点是,程序变更引起的风险降低。
     总结一下就是我们编程要做到接口一定要满足单一职责,方法职责要清晰,类的设计尽量做到只有一个原因引起变化。

     里氏替换原则:
     它主要是为良好的继承定义了一个规范:
1、子类必须完全实现父类的方法
2、子类可以有自己的方法和属性
3、覆盖或实现父类的方法时输入参数可以被放大
4、复写或实现父类的方法时输出结果可以被缩小
     简单的说就是爸爸在的地方儿子一定可以存在,但儿子存在的地方爸爸不一定可以存在。可以将子类当做父类使用。

      接口隔离原则:
      它告诉我们的就是设计接口时尽量细化,同时接口中方法尽量少,大家千万不要以为这与单一原则重复,这两个原则的审视角度是不同的。接口隔离原则认为提供给每个模块的都应该是单一接口,提供给几个模块就应该有几个接口。
      如果一个接口定义了许多方法,我们需要判断我们设计的接口是否过于庞大,是否容纳了一些可变的因素?如果是,那你就可以将接口拆分,但拆分需要有个限度,否则你就会陷入其中无法自拔。
    接口隔离原则是对接口进行规范约束:
1、在不违反单一原则的前提下,接口设计的尽量要“小”,不要太过臃肿
2、接口要实现类与类之间的高内聚
3、定制服务
4、接口设计是有限度的
    最后,接口的设定需要根据环境来设计,不同的环境有不同的设计方法。

      迪米特法则:
    迪米特法则对类的低耦合提出明确的要求:
1、它只与朋友类交流,什么是朋友类?朋友类是指出现在成员变量、方法的输入输出参数中的类称为成员朋友                 类,而出现在方法体内部的类不属于朋友类。
2、朋友之间也是有距离的,就是尽量少的在类中公开public属性或方法。
3、如果一个方法放在本类中,即不增加类间关系,也对本类不产生负面影响,就放置在本类中。
4、谨慎使用Serializable
      迪米特法则的核心观念就是类间解耦,弱耦合。
      
      依赖倒置原则:
      依赖倒置原则也可以减少类间的耦合性,他的本质就是通过接口或抽象类是各个类或模块的实现彼此独立,不互相影响。我们需记住的是:
1、任何类都不应该从具体类派生
2、尽量不要覆写基类的方法
3、结合里氏替换原则使用

     如果对我说的还是不太清楚,可以看看《设计模式之禅》这本书,此书偏向口语化,适合初学者使用。
     在这我多句嘴,很多初学者都不知道如何挑选书籍,不知道什么样的书叫做好书,依我个人观点,在初学阶段,选择一本偏向口语化的书,自己能看懂,看着有兴趣的书就叫好书,在进阶阶段再看你认为高深的书。



最后

以上就是爱笑跳跳糖为你收集整理的带你玩转六大设计原则的全部内容,希望文章能够帮你解决带你玩转六大设计原则所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部