![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
EamonZzz
Java开发工程师
展开
-
设计模式 - 策略模式
在理解策略模式之前我们假设有这样一个需求场景:我们在写订单支付场景的代码时,客户可以选择多种支付方式,有银联支付、支付宝支付、微信支付、京东白条等等。然后我们就很可能就会编写出类似下面这样的代码:/** * 订单类,拥有一个支付方法 * * @author eamon.zhang * @date 2019-11-06 上午9:18 */public class Order { ...原创 2019-11-07 08:49:01 · 923 阅读 · 0 评论 -
设计模式 - 委派模式
理解首先委派模式不属于23种设计模式。所谓委派,个人理解是:将为达到最终结果的事情交给其他人或中间人来干,我只要最终结果,其他的事情,由我委派的人来安排。更直白的表达就是,比如,我们想要盖一栋楼房,盖完之后我要刷漆,这些事情我自己肯定不能做,所以我这时候就会去找一个“包工头”来帮我完成这件事情,我只要告诉“包工头”我要盖房子、我要给房子刷漆等命令,其他的事情我不管,最终能够交付给我这个刷完漆...原创 2019-10-28 09:51:59 · 867 阅读 · 0 评论 -
设计模式 - 动态代理原理及模仿JDK Proxy 写一个属于自己的动态代理
本篇文章代码内容较多,讲的可能会有些粗糙,大家可以选择性阅读。本篇文章的目的是简单的分析动态代理的原理及模仿JDK Proxy手写一个动态代理以及对几种代理做一个总结。对于代理模式的介绍和讲解,网上已经有很多优质的文章,我这里就不会再过多的介绍了,这里推荐几篇优质的文章作为参考:给女朋友讲解什么是代理模式轻松学,Java 中的代理模式及动态代理另外,我的 github 仓...原创 2019-10-15 09:05:53 · 978 阅读 · 0 评论 -
设计模式 - 单例模式之多线程调试与破坏单例
前言在之前的 设计模式 - 单例模式(详解)看看和你理解的是否一样? 一文中,我们提到了通过Idea 开发工具进行多线程调试、单例模式的暴力破坏的问题;由于篇幅原因,现在单独开一篇文章进行演示:线程不安全的单例在多线程情况下为何被创建多个、如何破坏单例。如果还不知道如何使用IDEA工具进行线程模式的调试,请先阅读我之前发的一篇文章: 你不知道的 IDEA Debug调试小技巧一、线程不安...原创 2019-10-10 09:27:40 · 274 阅读 · 0 评论 -
设计模式 - 单例模式(详解)看看和你理解的是否一样?
一、概述单例模式是设计模式中相对简单且非常常见的一种设计模式,但是同时也是非常经典的高频面试题,相信还是有很多人在面试时会挂在这里。本篇文章主要针对单例模式做一个回顾,记录单例模式的应用场景、常见写法、针对线程安全进行调试(看得见的线程)以及总结。相信大家看完这篇文章之后,对单例模式有一个非常深刻的认识。文章中按照常见的单例模式的写法,由浅入深进行讲解记录;以及指出该写法的不足,从而进行演进改...原创 2019-10-10 09:22:36 · 97 阅读 · 0 评论 -
设计模式 - 工厂模式
概述我们都知道Java中共有 23 种设计模式,其中工厂模式分为三种,即:简单工厂模式(不在 23 种设计模式之列)、工厂方法模式和抽象工厂模式;我们平时说的工厂模式,其实大都指工厂方法模式,这种模式是我们平时编码中用的频率最高的一种,在Spring源码中就有很多工厂模式的应用,比如 BeanFactory。下面依次按照简单工厂模式、工厂方法模式、抽象工厂模式的顺序,依次由浅入深说说这三种...原创 2019-10-10 09:21:59 · 162 阅读 · 0 评论 -
设计模式 - 导读
发布说明其实不用设计模式并非不可以,但是用好设计模式能帮助我们更好地解决实际问题。设计模式天天都在用,但自己却无感知。本系列文章,初衷是为了记录日常经常使用的设计模式,也给学习设计模式的同学们提供参考和查阅。文章内容有自己的理解,也有参考网络,如有侵犯,请告知删除。学习设计模式的重要性设计模式最重要的是解耦。学习设计模式是如何总结经验的,把经验为自己所用。学设计模式也是锻炼将业务需...原创 2019-10-10 09:21:29 · 88 阅读 · 0 评论 -
设计模式 - 七大设计原则(四)- 合成复用原则与设计原则总结
概述简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化接口隔离原则:使用多个专门的接口,而不是使用一个总接口迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符里氏替换原则:子类可...原创 2019-10-10 09:20:56 · 107 阅读 · 0 评论 -
设计模式 - 七大设计原则(三)- 迪米特法则与里氏替换原则
概述简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化接口隔离原则:使用多个专门的接口,而不是使用一个总接口迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符里氏替换原则:子类可...原创 2019-10-10 09:20:18 · 192 阅读 · 0 评论 -
设计模式 - 七大设计原则(二)
概述简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符 里氏替换原则:子类可以扩...原创 2019-10-10 09:19:34 · 69 阅读 · 0 评论 -
设计模式 - 七大设计原则(一)
概述简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化接口隔离原则:使用多个专门的接口,而不是使用一个总接口迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和陌生人说话,控制好访问修饰符里氏替换原则:子类可以扩...原创 2019-10-10 09:18:57 · 102 阅读 · 0 评论