简单上手设计模式

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. Linux Ubuntu 16.04 初次安装使用总结zzz

    装了两天的ubuntu系统终于算是勉强能用了,来来回回装了有三四次,期间出了各种各样的毛病.但是还是被我的Google大法给治好了.为了装这个系统,算是耗了两天的时间,啥事情都没干,干耗在这上面了.所 ...

  2. c语言,数据结构,链表的一些操作总结

    下面是自己的一些学习操作以及总结,能用我会很开心,有不足之处,欢迎大家提出宝贵的意见! c语言链表是一种基本的数据结构,与顺序表一样属于线性表,但是顺序表在内存中的存储单元是连续的,这样就对内存的要求 ...

  3. nginx常用配置系列-虚拟主机

    本来准备详尽的出一份nginx配置讲解,但nginx功能配置繁多,平常使用中使用最多的一般有: 1. 虚拟主机配置 2. HTTPS配置 3. 静态资源处理 4. 反向代理 ============= ...

  4. 用redis的scan命令代替keys命令,以及在spring-data-redis中遇到的问题

    摘要 本文主要是介绍使用redis scan命令遇到的一些问题总结,scan命令本身没有什么问题,主要是spring-data-redis的问题. 需求 需要遍历redis中key,找到符合某些pat ...

  5. java通过反射获取字段的类型

    import java.lang.reflect.Field;  //这是需要引入的包 Field[] f = 类名.class.getDeclaredFields(); //获取该类的字段for(F ...

  6. APNs 推送原理及问题

    http://bbs.csdn.net/topics/390461996 在 iOS 平台上,大部分应用是不允许在后台运行并连接网络的.在应用没有被运行的时候,只能通过 Apple Push Noti ...

  7. sed、awk——运维必须掌握的两个工具

    今天主要跟大家介绍2个非常霸道的工具,sed和awk,本篇文章将介绍这两个工具在日常运维中的常用用法,工作中这两个工具要掌握好了在结合一些管道命令.正则表达式,日常处理事务简直666啦! l Sed ...

  8. Python 枚举

    1. 枚举的定义 首先,定义枚举要导入enum模块.枚举定义用class关键字,继承Enum类.用于定义枚举的class和定义类的class是有区别. 示例代码: from enum import E ...

  9. stats.go

    , len(c.clients))             for _, client := range c.clients {                 clients = append(cl ...

  10. Java RESTful 框架的性能比较

    来源:鸟窝, colobu.com/2015/11/17/Jax-RS-Performance-Comparison/ 如有好文章投稿,请点击 → 这里了解详情 在微服务流行的今天,我们会从纵向和横向 ...