设计模式-六大原则

目录

前言

单一职责原则:Single Responsibility Principle

里式代换原则:Liskov Substitution Principle

依赖倒转原则:Dependence Inversion Principle

接口隔离原则:InterfaceSegregation Principles

迪米特原则:Law of Demeter

开闭原则:Open Close Principle


前言

设计模式六大原则,把这六个原则的首字母联合起来(两个 L 算做一个)就是 SOLID (solid,稳定的),其代表的含义就是这六个原则结合使用的好处:建立稳定、灵活、健壮的设计。下面我们来分别看一下这六大设计原则。

单一职责原则:Single Responsibility Principle

定义:一个类只负责一项职责

就一个类而言,仅有一个引起它变化的原因,小编遇到的最大的问题是对职责的定义,什么是类的职责,以及怎么划分类的职责,这需要靠个人经验界定。

目的:降低类的复杂性,可读性提高,可维护性提高。

里式代换原则:Liskov Substitution Principle

定义:子类继承父类,单独完全可以运行

任何基类出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加行的行为。

举例:球类,原本是一种体育用品,他的衍生类有足球、篮球等等,如果衍生类替换了基类的原本方法,如把体育用品改为了食用品(那么软件单位的功能受到影响),就不符合历史代换原则。

目的:对实现抽象化的具体步骤的规范。

依赖倒转原则:Dependence Inversion Principle

定义:高层模块不应该依赖底层模块,两个都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象

该原则针对接口编程,而不是针对实现编程,引用一个对象,如果这个对象有底层类型,直接引用底层类型。

举例:以计算机系统为例,无论主板、CPU、内存、硬件都是针对接口设计的,如果针对实现设计,内存就要对应到针对某个品牌的主板,那么如果需要换内存必须得吧主板也换掉,不符合设计原则。

目的:降低模块间的耦合度。

接口隔离原则:InterfaceSegregation Principles

定义:一个类对另一个类的依赖应建立在最小的接口上

为每个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类调用,客户端也不应该依赖它不需要的接口,每一个接口应该是一种角色。

举例:登陆和注册属于用户模块的两个接口,比写成一个接口好。

目的:提高程序设计的灵活性。

注:接口尽量小,但是要有限度。接口太小会造成接口数量过多,是设计复杂化,所以接口要适度。

迪米特原则:Law of Demeter

定义:一个实体应当尽量少的与其他实体之间发生相互作用

迪米特原则也叫”最少知道原则“,一个对象应对其他对象有尽可能少的了解(只与你的直接朋友交谈,不跟“陌生人”说话)。

举例:一个公开的public属性或方法越多,修改时涉及的面也就越大,变更引起的风险也就越大。

目的:降低类之间的耦合,减少对其他类的依赖。

开闭原则:Open Close Principle

定义:对拓展开放,对修改关闭

所有面向对象的核心,在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果(灵活的去除或添加功能,不影响到原有的功能)。

目的:提高程序的可拓展性,易于维护和升级。

1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计模式支撑。 2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,但是不知道怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,比如 单例模式的8种实现方式、工厂模式的3种实现方式、适配器模式的3种实现、代理模式的3种方式、深拷贝等 3) 如果你想写出规范、漂亮的程序,就花时间来学习下设计模式吧 课程内容和目标 本课程是使用Java来讲解设计模式,考虑到设计模式比较抽象,授课采用 图解+框架源码分析的方式 1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式、工厂模式。结构型模式:适配器模式(3种实现)、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式(3种实现)。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式) 2) 学习目标:通过学习,学员能掌握主流设计模式,规范编程风格,提高优化程序结构和效率的能力。
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页