23种设计模式与六大原则看了又忘,忘了又看?大牛:方法不对啊!!
前言
设计模式分为三类,创建型,结构型和行为型。创建型比较好理解,它抽象了实例化过程,将系统与实例的创建解耦。实例由专门的工厂来创建,从而使系统针对实例的抽象接口编程,不依赖任何具体的实现。结构型和行为型有点难以理解,GoF的解释是,结构型模式涉及到如何组合类和对象以获得更大的结构;行为模式涉及到算法和对象间职责的分配。行为模式不仅描述对象或类的模式,还描述它们之间的通信模式。
大部分行为型和结构型设计模式的特点还是挺明显的,但是有少部分的界限就没那么清晰。比如说代理模式属于结构型模式,但是它也承担了职责的分配。它通过一个代理类,直接处理客户请求,但是把大部分实际职责交给原始的工作类。将设计模式划分为三种类型,可以理解为是划分出一种层级,帮助模式的使用者记忆和理解。
GoF提到的23种设计模式中有的特点是比较鲜明的,它们有明显的中间层,并且与其它设计模式不容易混淆,但是有的却不那么容易理解其意图。下面就按照是否容易理解分成两类来记录这些设计模式。
那些容易理解,有明显中间层的设计模式
- 单件模式
- 适配器模式
- 外观模式
- 享元模式
- 代理模式
- 命令模式
- 迭代器模式
- 策略模式
那些容易混淆,没有明显中间层的设计模式
- 工厂方法与抽象工厂
- 装饰模式
- 组合模式
- 观察者模式
- 状态模式
- 生成器模式
- 原型模式
- 桥接模式
- 职责链模式
- 解释器模式
- 中介者模式
- 备忘录模式
- 模版方法模式
- 访问者模式
就像优化准则之一是“不要过度优化”,设计模式也是不要在需求不明确的情况下过早和过多地使用设计模式。记住几个常用的设计模式,在实际项目中思考哪些是经常变动的,哪些可以套用上这些设计模式。
那么要如何系统化的学习设计模式?这个问题我想一定是困扰着大多数的读者朋友,网上找的关于设计模式的资料都是零零散散的,没有期望说这篇文章对你有意义,这要求太高了,我远没有这个能力,但是如果能有一套完整的学习视频、学习文档让你看完就把这个设计模式都记住了,那这篇文章的目标就达到了。
这里整理成了一份文档,加VX号:MXY1692”获取小编整理的【23种设计模式与六大原则】】文档与【整套设计模式学习视频】
本文档的立意不仅仅在于介绍基本的设计模式知识,更多的是说明在何种条件下选择正确的设计模式。因为在实践中,滥用或错用设计模式有时候跟大的是浪费。因此,本文档在设计模式的介绍过程中穿插了不同类型模式之间的比较,并在第8章第9章给出了大量的Java问题实例,供读者深入理解。加VX号:MXY1692”获取小编整理的【23种设计模式与六大原则】】文档与【整套设计模式学习视
第一章 概述
第二章 UML基础
第三章 设计模式简介
第四章 创造型模式
第五章 结构型模式
第六章 行为型模式
第七章 概念与提示
第八章 设计模式面试问题
面试问答
本书特点
- 涵盖GoF提出的23种设计模式
- 以简单直接的方法展示设计模式的核心思想
- 涵盖设计模式相关的面试问题
- 提供大量实际代码示例,并且全部代码由Java编写,方便调试
- 基于软件开发人员实践经历,减少学习误区
- 无需软件设计基础知识
23种设计模式与六大原则学习思维导图
整套设计模式学习视频