简单上手设计模式

GITHUB:https://github.com/Fisher-Joe/EasyToLearnDesignPattern

本文旨在使用最简单的语言,最简单的代码让人学习设计模式(最起码是我)

说明:

  1. 本文的所有内容都是基于引用文章的再次整理,后续版本也将以此为基础进行扩展和丰富;
  2. 为什么本文中的例子没有改写成C#?其实原作者使用的例子的语言一看即懂不与理解冲突,后续的实例,我将以C#为例;

注意:

  1. 您必须有一定的开发经验才能更好的理解该系列的文章;
  2. 如果你发现某个设计模式,你无法理解,那么请多搜索一下,或者跳下一个看,不要纠结某一个上面;
  3. OOP设计原则是所有设计模式的总纲,如果你够历害,不用看设计模式,只看这个就行了;
  4. 设计模式解决的是变化点,如果没有变化,就用不上它了;
  5. 有的时候要反设计模式,并不是说必须遵守;

0. 总则

设计模式(零):OOP设计原则(设计模式总纲)

1. 创建模式

设计模式(一):工厂模式 简单工厂|静态工程、工厂方法|多工厂、抽象工厂

设计模式(二):单例模式

设计模式(三):建造者模式Builder与原型模式Prototype

2. 结构模式

设计模式(四):适配器模式 Adapter 类适配器、对象适配器、接口适配器

设计模式(五):装饰器模式(Decorator)和代理模式(Proxy)|委托模式(Delegater)

设计模式(六):外观模式(Fecade)与桥接模式(Bridge)详解

设计模式(七):组合模式(Composite)与享元模式(Flyweight)详解

设计模式(八):过滤器模式(Filter)及Kotlin的Filter模式

3. 行为模式

设计模式(九):策略模式(Strategy)与模板模式(Template)详解及二者间区别介绍(两种父子类行为模式)

设计模式(十):观察者模式|迭代器模式|责任链模式|命令模式(四种类间行为模式)

设计模式(十一):备忘录模式(Memento)|状态模式(State) - (两种类状态行为模式)

设计模式(十二):中介模式|访问者模式|解释器模式(三种中间类行为模式)

参考

https://blog.csdn.net/shenpibaipao/article/details/77162732

EasyToLearnDesignPattern的更多相关文章

随机推荐

  1. TensorFlow源码安装

    前言 TensorFlow如果能二进制包安装,我真的不想选择自己编译,但是情况不由人,好不容易找到一台服务器,CPU不支持AVX指令集,安装的release版本运行到import tensorflow ...

  2. SSM-MyBatis-12:Mybatis中添加单个对象返回主键id列

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 实体类 public class Book { private Integer bookID; private ...

  3. [OPEN CV] 常用视频操作方法

    一.视频的定义 视频(Video)泛指将一系列静态影像以电信号的方式加以捕捉.纪录.处理.储存.传送与重现的各种技术.连续的图像变化每秒超过24帧(frame)画面以上时,根据视觉暂留原理,人眼无法辨 ...

  4. [html]------行内元素与块级元素

    块级元素(block element)div -最常用的块级元素dl - 和dt dd搭配使用的块级元素form - 交互表单h1 - 大标题hr - 水平分隔线ol - 排序表单p - 段落ul - ...

  5. JVM学习记录-垃圾收集器

    先回顾一下上一篇介绍的JVM中常见几种垃圾收集算法: 标记-清除算法(Mark-Sweep). 复制算法(Copying). 标记整理算法(Mark-Compact). 分代收集算法(Generati ...

  6. util.go

    packagesego import(     "bytes"     "fmt" ) //输出分词结果为字符串 // //有两种输出模式,以"中华人 ...

  7. 【bzoj 2916】[Poi1997]Monochromatic Triangles

    题目描述        空间中有n个点,任意3个点不共线.每两个点用红线或者蓝线连接,如果一个三角形的三边颜色相同,那么称为同色三角形.给你一组数据,计算同色三角形的总数.          输入 第 ...

  8. Linux的文件类型

    在Linux中,文件的颜色都是有含义的.其中, Linux中文件名颜色不同,代表文件类型不一样. 浅蓝色:表示链接文件: 灰色:表示其他文件: 绿色:表示可执行文件: 红色:表示压缩文件: 蓝色:表示 ...

  9. Java解析表达式

    需求 思路 总结 需求 指定一个String表达式,表达式符合给出的运算符规范,比如:2!=2 and 2>=3 or 4<=4,计算出表达式的结果(true or false). 支持的 ...

  10. 危险 AI 花名册

    简评:臭不要脸 AI 名单,another side of AI. 这是一个可怕的 AI 清单,上面的各种商用 AI 项目都用于一些很恶劣的目的.请大家保持警惕. 区别对待类 · HireVue - ...