简单上手设计模式

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. Eclipse开发前,常用设置

    设置工作空间的项目编码, 防止出现乱码    Window - Preferences - General - Workspace    将"Text file encoding" ...

  2. linux定时任务cron配置

    实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...

  3. linux下错误的捕获:errno(errno.h)和strerror(string.h)的使用

    参考:http://blog.csdn.net/starstar1992/article/details/52756387 linux下错误的捕获:errno和strerror的使用 经常在调用lin ...

  4. js中给easyUI年份,月份选择下拉框赋值

    sp中定义 js中初始化 //年度下拉框初始化 $("#yearChoose").combobox({    valueField:'year',     textField:'y ...

  5. C语言实现计算双基回文数详解

    双基回文数的定义: 如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数. 根据定义,简单的说就是在二进制到十进制之间(包括十进制和 ...

  6. java获取一个月的天数

    import java.text.SimpleDateFormat; import java.util.Calendar; public class Test { public static void ...

  7. npm install 遇到问题的解决

    在利用npm install 命令时,要以管理员权限运行CMD,然后进入到npm-modules目录,然后再执行install命令

  8. 这样入门asp.net core 之 静态文件

    本文章主要说明asp.net core中静态资源处理方案: 一.静态文件服务 首先明确contentRoot和webroot这两个概念 contentRoot:web的项目文件夹,其中包含webroo ...

  9. genymotion中app打开后屏幕是倒的问题

    屏幕是倒的是因为你使用了虚拟机的默认分辨率. 解决办法: 选择需要的设置的虚拟机,点击后面的设置按钮 弹窗中选择其他的分辨率 如果之前是1024x600,前面的数值大于后面的.则换成前面的数值小于后面 ...

  10. Selenium 三种等待

    问题 : 强制等待和隐式等待的区别怎么理解? 和pause有什么区别?什么时候适用pause? 第二篇文章更清楚一点. 以下内容引自: https://www.cnblogs.com/xu-jia-l ...