简单上手设计模式

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. C#学习(一):委托和事件

    预备知识 在学习委托和事件之前,我们需要知道的是,很多程序都有一个共同的需求,即当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知. 而发布者/订阅者模式可以满足这种需求.简单来说 ...

  2. Struts标签库详解【1】

    struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri=& ...

  3. 并发库应用之十二 & 常用集合问题汇总

    1. List遍历时修改报错 别的先什么都不说,直接上代码看看就知道了: public class ListTest { public static void main(String[] args) ...

  4. 开源RPC(gRPC/Thrift)框架性能评测

    海量互联网业务系统只能依赖分布式架构来解决,而分布式开发的基石则是RPC:本文主要针对两个开源的RPC框架(gRPC. Apache Thrift),以及配合GoLang.C++两个开发语言进行性能对 ...

  5. 一个bug分析 ----------换个角度,有另外一个天地

    有个接口是按修改时间(updated_time)排序的 优化后,有人反馈接口的返回值有问题 查了一下,反馈的数据是推荐过的(推荐操作是会更新updated_time的). 然后就认为是有人进行了推荐操 ...

  6. 《Hadoop金融大数据分析》读书笔记

    <Hadoop金融大数据分析> Hadoop for Finance Essentials 使用Hadoop,是因为数据量大数据量如此之多,以至于无法用传统的数据处理工具和应用来处理的数据 ...

  7. matplotlib简单的使用(二)

    1.折线图 import matplotlib as mlb from matplotlib import pylab as pl # 折线图 # 分别创建x,y坐标 x = [1,3,5,7,6,9 ...

  8. JS题目合集---新技术层出不穷,打好基础才是上策~

    在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了.但是在面试之前 ...

  9. Python logger 没打出行数

    # !/user/bin/python # -*- coding: utf-8 -*- ''' subprocess : 需要在linux平台上测试 shell logging ''' import ...

  10. Java基本类型和引用类型

      8种基本类型 一.4种整型     byte      1字节           -128--127     short     2 字节         -32,768 -- 32,767   ...