EasyToLearnDesignPattern
简单上手设计模式
GITHUB:https://github.com/Fisher-Joe/EasyToLearnDesignPattern
本文旨在使用最简单的语言,最简单的代码让人学习设计模式(最起码是我)
说明:
- 本文的所有内容都是基于引用文章的再次整理,后续版本也将以此为基础进行扩展和丰富;
- 为什么本文中的例子没有改写成C#?其实原作者使用的例子的语言一看即懂不与理解冲突,后续的实例,我将以C#为例;
注意:
- 您必须有一定的开发经验才能更好的理解该系列的文章;
- 如果你发现某个设计模式,你无法理解,那么请多搜索一下,或者跳下一个看,不要纠结某一个上面;
- OOP设计原则是所有设计模式的总纲,如果你够历害,不用看设计模式,只看这个就行了;
- 设计模式解决的是变化点,如果没有变化,就用不上它了;
- 有的时候要反设计模式,并不是说必须遵守;
0. 总则
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的更多相关文章
随机推荐
- Eclipse开发前,常用设置
设置工作空间的项目编码, 防止出现乱码 Window - Preferences - General - Workspace 将"Text file encoding" ...
- linux定时任务cron配置
实现linux定时任务有:cron.anacron.at,使用最多的是cron任务 名词解释 cron--服务名:crond--linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与 ...
- linux下错误的捕获:errno(errno.h)和strerror(string.h)的使用
参考:http://blog.csdn.net/starstar1992/article/details/52756387 linux下错误的捕获:errno和strerror的使用 经常在调用lin ...
- js中给easyUI年份,月份选择下拉框赋值
sp中定义 js中初始化 //年度下拉框初始化 $("#yearChoose").combobox({ valueField:'year', textField:'y ...
- C语言实现计算双基回文数详解
双基回文数的定义: 如果一个正整数n至少在两个不同的进位制(二进制<=进制=<十进制)b1和b2下都是回文数,则称n是双基回文数. 根据定义,简单的说就是在二进制到十进制之间(包括十进制和 ...
- java获取一个月的天数
import java.text.SimpleDateFormat; import java.util.Calendar; public class Test { public static void ...
- npm install 遇到问题的解决
在利用npm install 命令时,要以管理员权限运行CMD,然后进入到npm-modules目录,然后再执行install命令
- 这样入门asp.net core 之 静态文件
本文章主要说明asp.net core中静态资源处理方案: 一.静态文件服务 首先明确contentRoot和webroot这两个概念 contentRoot:web的项目文件夹,其中包含webroo ...
- genymotion中app打开后屏幕是倒的问题
屏幕是倒的是因为你使用了虚拟机的默认分辨率. 解决办法: 选择需要的设置的虚拟机,点击后面的设置按钮 弹窗中选择其他的分辨率 如果之前是1024x600,前面的数值大于后面的.则换成前面的数值小于后面 ...
- Selenium 三种等待
问题 : 强制等待和隐式等待的区别怎么理解? 和pause有什么区别?什么时候适用pause? 第二篇文章更清楚一点. 以下内容引自: https://www.cnblogs.com/xu-jia-l ...