设计模式(一)基本介绍

一、简介

设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。目的是为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。

下图为常用的23中设计模式,整个系列参考《Head First 设计模式》,加深印象,方便查阅。
因此博客中会引入书中的一些一些案例。

范围 创建型模式 结构型模式 行为型模式
类模式 工厂方法 (类)适配器 模板方法、解释器
对象模式 单例 原型 抽象工厂 建造者 代理 (对象)适配器 桥接 装饰 外观 享元 组合 策略 命令 职责链 状态 观察者 中介者 迭代器 访问者 备忘录
设计模式(一)基本介绍_第1张图片
设计模式-引自百度

二、设计模式的六大原则

总原则:开闭原则

基本概念:当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。

理解:举个例子,一款小说阅读器伴随着很多的翻页动画,但为了应对后期可能会增加新的翻页动画的情况,因此可以通过抽象类为翻页动画,由不同的子类去实现翻页逻辑,达到实现翻页动画的目的。因此简单的理解就是通过接口或者抽象类为定义一个抽象层,而将相同的可变因素封装在相同的具体实现类中。

1、单一职责原则

基本概念:单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分

2、里氏替换原则

基本概念:里氏替换原则主要阐述了有关继承的一些原则,也就是什么时候应该使用继承,什么时候不应该使用继承,以及其中蕴含的原理。里氏替换原是继承复用的基础,它反映了基类与子类之间的关系,是对开闭原则的补充,是对实现抽象化的具体步骤的规范。子类可以扩展父类的功能,但不能改变父类原有的功能

3、依赖倒转原则

基本概念:这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互,达到降低客户与实现模块之间的耦合。

理解:使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给它们的实现类去完成。

4、接口隔离原则

基本概念:这个原则的意思是:每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

5、迪米特法则

基本概念:一个类对自己依赖的类知道的越少越好。也就是说无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

6、合成复用原则

基本概念:要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

理解:举个例子理解,电脑分为笔记本、台式机,笔记本有各种颜色,台式机也有各种颜色,在面向对象设计时,我们通常会按这个顺序理解,但为达到服用,我们可以将颜色与电脑绑定即可。

三、设计原则:

  • 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
  • 针对接口编程,而不是针对实现编程。
  • 多用组合,少用继承。
  • 为了交互之间松耦合设计而努力。
  • 类用该对扩展开发,对修改关闭。
  • 要依赖抽象,不要依赖具体类。

四、设计模式:

下面对这些部分常用设计模式具体学习,目录:

设计模式(二)策略模式
设计模式(三)观察者模式
设计模式(四)装饰模式
设计模式(五)工厂模式
设计模式(六)单件模式
设计模式(七)适配器模式
设计模式(八)代理模式
设计模式(九)建造者模式
计划:
设计模式暂时记录到这里,后面会计划结合源码深入学习

你可能感兴趣的:(设计模式(一)基本介绍)