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的更多相关文章
随机推荐
- SpringCloud实战-Hystrix线程隔离&请求缓存&请求合并
接着上一篇的Hystrix进行进一步了解. 当系统用户不断增长时,每个微服务需要承受的并发压力也越来越大,在分布式环境中,通常压力来自对依赖服务的调用,因为亲戚依赖服务的资源需要通过通信来实现,这样的 ...
- 快速失败(fail-fast)和安全失败(fail-safe)的区别
1.fail-fast和fail-safe比较 Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响.java.util包下面的所有的集合类都是快速失败的,而java.ut ...
- Java NIO Scatter / Gather
原文链接:http://tutorials.jenkov.com/java-nio/scatter-gather.html Java NIO发布时内置了对scatter / gather的支持.sca ...
- binlog——逻辑复制的基础
Ⅰ.binlog定义和作用 1.1 定义 记录每次数据库的逻辑操作(包括表结构变更和表数据修改) 包含:binlog文件和index文件 1.2 作用 复制:从库读取主库binlog,本地回放实现复制 ...
- JavaWeb(四)Servlet-1
1.Servlet 简介 Java Servlet是和平台无关的服务器端组件,它运行在Servlet容器中.Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet ...
- tkinter中text文本与scroll滚动条控件(五)
text与scroll控件 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("30 ...
- SpringCloud Eureka 报错 无法启动问题
1.SpringCloud Eureka 报错 无法启动基本上都是spring boot的版本与spring cloud的版本不匹配导致的. <dependencyManagement> ...
- WinForm时间选择控件(DateTimePicker)如何选择(显示)时分秒
C# Windows窗体应用中,用到时间选择控件DateTimePicker,发现不能选择时分秒,难道要自己写一个控件?! 答案是否定的,通过属性修改是可以选择时间的,DateTimePicker完全 ...
- Nginx安装及配置详解
nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...
- Java 读书笔记 (二) 对象和类
Java 作为一种面向对象语言,支持以下基本概念: 多态 继承 封闭 抽象 类 对象 实例 方法 重载 对象: 是类的一个实例,有状态和行为.以人为例,黄种人.白种人.黑种人为类,每一个具体的人为类的 ...