设计模式
文章平均质量分 96
双子孤狼
关注孤狼,和孤狼一起学习!
知道的多一点,不知道的就少一点!
创作不易,如需转载,请注明出处!
展开
-
【设计模式系列24】GoF23种设计模式总结及软件设计7大原则
设计模式总结及软件设计七大原则前言软件设计7大原则开闭原则(Open-Closed Principle,OCP)里氏替换原则(Liskov Substitution Principle,LSP)依赖倒置原则(Dependence Inversion Principle,DIP)单一职责原则(Single Responsibility Principle,SRP)接口隔离原则(Interface Segregation Principle,ISP)迪米特法则(Law of Demeter,LoD)合成复用原则原创 2020-11-04 12:09:45 · 2554 阅读 · 2 评论 -
【设计模式系列23】设计模式的终极BOSS:访问者模式
访问者模式原理分析前言什么是访问者模式访问者模式示例访问者模式角色访问者模式适用场景访问者模式优缺点总结前言设计模式系列到这里已经是23种设计模式的最后一个设计模式了,访问者模式也可以说是所有设计模式中最难的一种设计模式了,当然我们平常也很少会用到它。设计模式的作者是这么评价访问者模式的:大多情况下,你并不需要使用访问者模式,但是一旦需要使用它时,那就真的需要使用了。什么是访问者模式访问者模式(Vistor Pattern)是一种将数据结构与数据操作分离的的设计模式。是指封装一些作用于某种数据结构中原创 2020-11-01 11:08:23 · 3284 阅读 · 17 评论 -
【设计模式系列22】命令模式示例及原理分析
命令模式示例及原理分析前言什么是命令模式为什么需要命令模式命令模式示例命令模式角色命令模式应用场景命令模式优缺点总结设计模式飞机票三大工厂模式登机入口策略模式登机入口委派模式登机入口模板方法模式登机入口观察者模式登机入口单例模式登机入口原型模式登机入口代理模式登机入口装饰者模式登机入口适配器模式登机入口建造者模式登机入口责任链模式登机入口享元模式登机入口组合模式登机入口门面模原创 2020-10-29 10:18:16 · 2018 阅读 · 3 评论 -
【设计模式系列21】备忘录模式:我简单到已经让人彻底忽略了
备忘录模式原理及示例分析前言什么是备忘录模式备忘录模式示例备忘录模式角色备忘录模式应用场景备忘录模式优缺点总结前言备忘录模式是一个非常简单的设计模式,简单到已经让我们忽略了这种设计模式的存在了。备忘录模式这个名字可能还是有人会觉得稍微有点陌生,但是它的另一个名字快照模式听起来可能心里就会有点明白这到底是一种什么设计模式了。接下来就让我们看看备忘录模式吧什么是备忘录模式备忘录模式(Memento Pattern)又称之为快照模式(Snapshop Pattern)或者令牌模式(Token Patter原创 2020-10-26 17:38:39 · 4198 阅读 · 4 评论 -
【设计模式系列20】解释器模式原理及其在JDK和Spring源码中的体现
解释器模式原理及其在JDK源码中的体现设计模式系列汇总前言什么是解释器模式终结符表达式和非终结符表达式解释器模式示例解释器模式角色解释器模式在JDK和Spring源码中应用解释器模式应用场景解释器模式优缺点总结设计模式系列汇总设计模式飞机票三大工厂模式登机入口策略模式登机入口委派模式登机入口模板方法模式登机入口观察者模式登机入口单例模式登机入口原型模式登机入口代理模式登机入口装饰者模式登机入口适配器模式登机入口原创 2020-10-24 07:12:26 · 2209 阅读 · 8 评论 -
【设计模式系列19】状态模式原理分析及其和策略模式,责任链模式的区别
状态模式原理分析前言什么是状态模式状态模式示例状态模式角色状态模式与责任链模式状态模式与策略模式状态模式应用场景状态模式优缺点总结前言状态对于我们开发者而言是相当熟悉的,平常开发中总是离不开对象的状态,比如我们审核流程,就是一个状态不断流转的过程,订单流程也是一个状态不断流转的过程,而状态模式就是为了更好地解决我们状态流转过程中的业务处理逻辑。什么是状态模式状态模式(State Pattern)也称为状态机模式(State Machine Pattern),是允许对象在内部状态发生改变的同时改变对象原创 2020-10-21 15:23:46 · 2285 阅读 · 7 评论 -
【设计模式系列18】迭代器模式原理及其在JDK源码中的体现
迭代器模式原理模式原理及示例分析前言什么是迭代器模式迭代器模式示例迭代器模式角色迭代器模式在JDK源码中应用迭代器模式适用场景迭代器模式优缺点总结前言本文主要会介绍迭代器模式的原理,并会结合示例进行分析。迭代器模式其实我们基本上每个人都在用,可能只是自己没有察觉到这就是迭代器模式,等我们介绍完了大家就明白了,迭代器模式比较容易理解,而且一般应用开发使用的比较少,但是在底层的代码应用非常广泛什么是迭代器模式迭代器模式(Iterator Pattern)又称为游标者模式(Cursor Pattern)。原创 2020-10-09 18:22:38 · 1573 阅读 · 3 评论 -
【设计模式系列17】中介者模式原理及其在JDK源码中的体现
中介者模式原理及示例分析前言什么是中介者模式为什么需要中介者模式中介者模式示例中介者模式角色中介者模式和桥接模式的区别中介者模式在JDK源码中应用中介者模式应用场景中介者模式优缺点总结前言本文主要介绍中介者模式的原理,并会结合示例进行分析。中介者模式其实和桥接有点相似,桥接模式也是通过组合来实现的,但是中介者模式和桥接模式的侧重点不一样,接下来就让我们一起来看看中介者模式吧。什么是中介者模式中介者模式(Mediator Pattern)又称为调节者模式或者调停者模式,是用来降低多个对象和类之间的通信原创 2020-10-07 18:58:58 · 2919 阅读 · 4 评论 -
【设计模式系列16】桥接模式原理及示例分析
桥接模式原理及示例分析前言什么是桥接模式桥接模式示例桥接模式角色分类桥接模式应用场景桥接模式优缺点总结前言本文主要介绍桥接模式的原理,并会结合示例进行分析。桥接模式其实和组合有点相似,桥接模式也是通过组合来实现的,但是桥接模式和组合模式的侧重点不一样,接下来就让我们一起来看看桥接模式。什么是桥接模式桥接模式(Bridge Pattern)也称之为桥梁模式,接口(Interface)模式或者柄体(Handle and Body)模式。桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立的变化。桥原创 2020-10-05 19:29:39 · 3097 阅读 · 8 评论 -
【设计模式系列15】设计模式并没有想象中的那么高深,不信你进来看看门面模式就知道了
深入剖析SqlSession前言总结前言总结本文主要分析了请关注我,和孤狼一起学习进步。原创 2020-09-30 20:36:30 · 1994 阅读 · 3 评论 -
【设计模式系列14】组合模式及其在JDK和MyBatis源码中的运用
组合模式分析前言总结前言上一篇,我们介绍了建造者模式,以及建造者模式在源码中的运用,今天我们会先介绍一下责任链模式,然后会再通过一个示例来将责任链模式和建造者模式结合起来应用。总结本文介绍了责任链模式的基本用法,并通过一个示例将责任链模式和建造者模式结合起来使用,使得代码更加优雅,同时也介绍了Spring中对责任链模式的应用,希望通过本文的学习,大家可以更好地理解责任链模式的原理,可以在合适的场景中进行实际应用。请关注我,和孤狼一起学习进步。...原创 2020-09-20 11:34:28 · 2845 阅读 · 7 评论 -
【设计模式系列13】今天才知道,原来我一直在用享元模式
享元模式分析前言什么是享元模式享元模式示例享元模式状态内部状态外部状态享元模式示例2享元模式角色享元模式在JDK源码中的体现享元模式应用场景享元模式优缺点优点缺点总结前言我们知道,数据库的连接非常消耗性能,所以就有了连接池来减少连接操作的性能消耗;如果一个系统中需要创建大量线程,也会消耗大量性能,所以就有了线程池。而我们在面向对象过程中,会创建大量对象,而如果有些对象可以被重复使用,那么我们是不是可以创建一个对象池来减少创建对象所带来的性能消耗呢?答案是肯定的,这就是我们今天需要学习的享元模式做的事原创 2020-09-16 20:22:39 · 1601 阅读 · 12 评论 -
【设计模式系列12】责任链模式原理和示例及其在Spring源码中的运用
责任链模式分析前言什么是责任链模式写法示例登录用户信息类Handler抽象类链路节点Handler实现类校验账号密码Handler校验角色Handler校验权限Handler测试运行结果和传统写法对比责任链模式结合建造者模式改写Handler抽象类测试运行结果责任链模式角色责任链模式适用场景责任链模式源码中体现责任链模式优缺点优点缺点总结前言上一篇,我们介绍了建造者模式,以及建造者模式在源码中的运用,今天我们会先介绍一下责任链模式,然后会再通过一个示例来将责任链模式和建造者模式结合起来应用。什么是责任原创 2020-09-07 18:49:24 · 6856 阅读 · 12 评论 -
【设计模式系列11】建造者模式原理和示例及其在jdk,MyBatis源码中的运用
建造者模式分析前言什么是建造者模式建造者模式角色简单写法示例1、产品(Product)2、建造者(ConcreteBuilder)3、调用者(Director)标准写法示例1、产品(Product)2、抽象建造者(Builder)3、建造者(ConcreteBuilder)4、调用者(Director)适用场景建造者模式在源码中体现建造者模式优缺点建造者模式和工厂模式区别总结前言当我们创建一个复杂对象时,可能大家的第一反应就是使用工厂模式。但是如果构建一个对象非常复杂,而且有些比如说属性之类的是可选的,原创 2020-09-06 10:37:38 · 3478 阅读 · 10 评论 -
【设计模式系列10】适配器模式的原理和示例
适配器模式什么是适配器模式适配器模式示例适配器模式适用场景适配器模式优点适配器模式缺点什么是适配器模式适配器模式(Adapter Pattern)是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。登录是一个非常常用的功能,在最原始的web网站一般都是通过账号密码登录,但是随着通讯软件的发展,现在的登录都需要支持手机登录,或者是qq,微信,微博等第三方快捷登录,但是不管选择什么登录,登录之后的处理逻辑肯定是一样的,所以为了遵循软件的开闭原则,我们不能直原创 2020-08-31 18:32:44 · 3071 阅读 · 7 评论 -
【设计模式系列9】如何利用装饰者模式在不改变原有对象的基础上扩展功能
装饰者模式一个问题引发的思考一个问题引发的思考1313原创 2020-08-05 20:13:24 · 2395 阅读 · 7 评论 -
【设计模式系列8】深入分析代理模式(JDK动态代理和CGLIB动态代理)
深入分析JDK代理和CGLIB代理模式前言前言原创 2020-07-15 19:16:07 · 2405 阅读 · 4 评论 -
【设计模式系列5】深入分析原型模式及浅克隆和深克隆的区别
什么是原型模式原创 2020-04-19 14:21:26 · 1827 阅读 · 0 评论 -
【设计模式系列6】单例模式的8种写法及如何防止单例被破坏
单例模式的写法懒汉模式恶汉模式懒汉模式恶汉模式原创 2020-04-25 13:57:03 · 2302 阅读 · 0 评论 -
【设计模式系列7】详解观察者模式pull和push两种写法
java设计模式之观察者模式什么是观察者模式观察者模式示例JDK观察者模式使用java.util.Observable的黑暗面观察者模式的有优点观察者模式的有缺点什么是观察者模式观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通 知并更新,属于行为型模式。观察者模式有时也叫做发...原创 2020-04-25 21:40:40 · 2790 阅读 · 4 评论 -
【设计模式系列4】详解模板方法模式
什么是模板方法模式模板方法模式(Template Method Pattern)是指定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为性设计模式。模板方法模式示例举个简单的炒蔬菜的例子,我们把炒菜拆分为以下几个步骤:放油放入蔬菜翻炒放盐放点其他佐料出锅接下来我们就以这个例子来写一个模板方法...原创 2020-04-11 22:09:10 · 1795 阅读 · 0 评论 -
【设计模式系列3】详解委派模式
什么是委派模式委派模式(Delegate Pattern)不属于GOF23种设计模式内,委派模式的基本作用就是负责任务的调用和分配任务。委派模式在 Spring 中应用非常多,比如我们常用的 DispatcherServlet 其实就是用到了委派模式。现实生活中也常有委派的场景发生,比如老板给项目经理下达任务,然后项目经理拆分任务后分配给不同员工去实现不同的工作。委派模式示例下面就以老板给项...原创 2020-03-08 17:38:08 · 1861 阅读 · 0 评论 -
【设计模式系列2】如何使用策略模式替换编程中大量的if判断
什么是策略模式策略模式(Strategy Pattern)是指定义了不同的算法逻辑,并将其封装起来,让它们之间可以互相替换,此模式可以让算法逻辑发生变化时不会影响到使用算法逻辑的用户。策略模式可以用于改造代码中的if…else逻辑策略模式使用场景同一个系统中存在不同的逻辑算法,而彼此之间在不同场景中需要实现动态替换,如:支付方式,可以选择:支付宝,微信,银联等,彼此之间就可以相互替换,再如商...原创 2020-03-02 17:28:12 · 2707 阅读 · 1 评论 -
【设计模式系列1】深入分析简单工厂,工厂方法和抽象工厂三种设计模式
深入分析工厂设计模式简单工厂设计模式(Simple Factory Pattern)指的是由一个工厂对象来决定创建出哪一类产品种类的实例。简单工厂模式适用于工厂类负责创建较少对象的场景,且客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。工厂方法设计模式抽象工厂模式...原创 2019-05-06 22:19:24 · 3118 阅读 · 0 评论