Java设计模式
系统学习设计原则,设计模式
小旋锋
DGUT
展开
-
设计模式 | 解释器模式及典型应用
微信原文:设计模式 | 解释器模式及典型应用博客原文:设计模式 | 解释器模式及典型应用本文主要介绍解释器模式,在日常开发中,解释器模式的使用频率比较低解释器模式解释器模式(Interpreter Pattern):定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的 “语言” 是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。角色AbstractExpre...原创 2019-01-13 23:47:54 · 3115 阅读 · 2 评论 -
设计模式 | 单例模式及典型应用
单例是最常见的设计模式之一,实现的方式非常多,同时需要注意的问题也非常多。本文主要内容:介绍单例模式介绍单例模式的N中写法单例模式的安全性序列化攻击反射攻击单例模式总结介绍单例模式的典型应用单例模式单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象...原创 2019-01-07 01:39:54 · 2225 阅读 · 3 评论 -
设计模式 | 责任链模式及典型应用
本文的主要内容:介绍责任链模式请假流程示例责任链模式总结源码分析Tomcat Filter中的责任链模式责任链模式一个事件需要经过多个对象处理是一个挺常见的场景,譬如采购审批流程,请假流程,软件开发中的异常处理流程,web请求处理流程等各种各样的流程,可以考虑使用责任链模式来实现。以请假流程为例,一般公司普通员工的请假流程简化如下:普通员工发起一个请假申请,当请假天数小于3天...原创 2018-10-31 23:00:54 · 6875 阅读 · 1 评论 -
设计模式 | 中介者模式及典型应用
本文的主要内容:介绍中介者模式数据同步示例中介者模式总结源码分析中介者模式的典型应用Java Timer 中的中介者模式中介者模式世界上存在着各种各样的数据库,不同数据库有各自的应用场景,对于同一份数据,最开始可能使用关系型数据库(如MySQL)进行存储查询,使用Redis作为缓存数据库,当数据量较大时使用MySQL进行查询可能较慢,所以需要将数据同步到Elasticsea...原创 2018-10-26 01:03:40 · 5892 阅读 · 2 评论 -
设计模式 | 备忘录模式及典型应用
本文的主要内容:介绍备忘录模式示例备忘录模式总结备忘录模式备忘录模式经常可以遇到,譬如下面这些场景:浏览器回退:浏览器一般有浏览记录,当我们在一个网页上点击几次链接之后,可在左上角点击左箭头回退到上一次的页面,然后也可以点击右箭头重新回到当前页面数据库备份与还原:一般的数据库都支持备份与还原操作,备份即将当前已有的数据或者记录保留,还原即将已经保留的数据恢复到对应的表中...原创 2018-10-25 00:56:18 · 9630 阅读 · 4 评论 -
设计模式 | 观察者模式及典型应用
本文主要内容:介绍观察者模式微信公众号的发布/订阅示例观察者模式总结分析观察者模式的典型应用JDK 提供的观察者接口中的观察者模式Guava EventBus 中的观察者模式JDK 委托事件模型DEM中的观察者模式Spring ApplicationContext 事件机制中的观察者模式观察者模式观察者模式是设计模式中的 “超级模式”,其应用随处可见,我们以微信公众号...原创 2018-10-24 01:05:45 · 6369 阅读 · 3 评论 -
设计模式 | 策略模式及典型应用
本文的主要内容:介绍策略模式示例商场购物打折策略的实现策略模式总结源码分析策略模式的典型应用Java Comparator 中的策略模式Spring Resource 中的策略模式Spring Bean 实例化中的策略模式策略模式在软件开发中,我们也常常会遇到类似的情况,实现某一个功能有多条途径,每一条途径对应一种算法,此时我们可以使用一种设计模式来实现灵活地选...原创 2018-10-18 20:54:46 · 2184 阅读 · 3 评论 -
设计模式 | 迭代器模式及典型应用
本文的主要内容:介绍迭代器模式源码分析迭代器模式的典型应用Java集合中的迭代器模式Mybatis中的迭代器模式更多内容请访问我的个人博客:http://laijianfeng.org迭代器模式迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。迭代器模式是一种对象行为型模式。角色I...原创 2018-10-11 23:09:59 · 4061 阅读 · 1 评论 -
设计模式 | 模板方法模式及典型应用
本文的主要内容:介绍模板方法模式源码分析模板方法模式的典型应用Servlet 中的模板方法模式Mybatis BaseExecutor接口中的模板方法模式模板方法模式在程序开发中,经常会遇到这种情况:某个方法要实现的算法需要多个步骤,但其中有一些步骤是固定不变的,而另一些步骤则是不固定的。为了提高代码的可扩展性和可维护性,模板方法模式在这种场景下就派上了用场。譬如制作一节网...原创 2018-10-11 00:41:07 · 5282 阅读 · 0 评论 -
设计模式 | 组合模式及典型应用
本文的主要内容:介绍组合模式示例组合模式总结源码分析组合模式的典型应用java.awt中的组合模式Java集合中的组合模式Mybatis SqlNode中的组合模式更多内容可访问我的个人博客:http://laijianfeng.org推荐阅读设计模式 | 简单工厂模式及典型应用设计模式 | 工厂方法模式及典型应用设计模式 | 抽象工厂模式及典型应用设计模式 ...原创 2018-10-05 17:36:55 · 6914 阅读 · 6 评论 -
设计模式 | 享元模式及典型应用
文章目录享元模式角色示例享元模式总结源码分析享元模式的典型应用String中的享元模式Integer 中的享元模式Long中的享元模式Apache Commons Pool2中的享元模式推荐阅读享元模式享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共...原创 2018-09-25 01:27:18 · 5276 阅读 · 1 评论 -
设计模式 | 适配器模式及典型应用
适配器模式适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适...原创 2018-09-20 01:37:29 · 100116 阅读 · 31 评论 -
设计模式 | 装饰者模式及典型应用
前言本文的主要内容:介绍装饰者模式示例源码分析装饰者模式的典型应用Java I/O 中的装饰者模式spring session 中的装饰者模式Mybatis 缓存中的装饰者模式总结装饰者模式装饰者模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。在装饰者模式...原创 2018-09-18 21:16:34 · 6763 阅读 · 1 评论 -
设计模式 | 外观模式及典型应用
前言本文的主要内容:介绍外观模式示例 自己泡茶到茶馆喝茶外观模式总结外观模式的典型应用 spring JDBC 中的外观模式Mybatis中的外观模式Tomcat 中的外观模式SLF4J 中的外观模式外观模式外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户...原创 2018-09-16 20:59:32 · 12955 阅读 · 1 评论 -
设计模式 | 原型模式及典型应用
前言本文的主要内容如下:介绍原型模式示例 Java语言的clone浅克隆与深克隆实现深克隆原型模式的典型应用原型模式原型模式(Prototype Pattern):使用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式是一种对象创建型模式。原型模式的工作原理很简单:将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象...原创 2018-09-15 00:49:41 · 2739 阅读 · 0 评论 -
设计模式 | 建造者模式及典型应用
本文目录 建造者模式角色示例建造者模式总结建造者模式的典型应用和源码分析java.lang.StringBuilder 中的建造者模式java.lang.StringBuffer 中的建造者方法Google Guava 中的建造者模式mybatis 中的建造者模式建造者模式建造者模式(Builder Pattern):将一个复杂对象的构建...原创 2018-09-12 14:05:21 · 3614 阅读 · 1 评论 -
设计模式 | 抽象工厂模式及典型应用
抽象工厂模式抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,它是一种对象创建型模式。在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的产品。角色在抽象工厂模式包含如下几个角色:AbstractFactory(抽象工厂):它声明了一组用...原创 2018-09-11 15:12:30 · 1212 阅读 · 1 评论 -
设计模式 | 简单工厂模式及典型应用
前言设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解并且保证代码可靠性。本文主要介绍简单工厂模式及典型应用,内容如下:简单工厂模式的介绍简单工厂模式的典型应用及源码分析 Calendar 类获取日历类对象JDBC 获取数据库连接LoggerFactory 获取 Lo...原创 2018-09-07 23:30:40 · 3491 阅读 · 3 评论 -
设计模式 | 工厂方法模式及典型应用
工厂方法模式工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类。工厂方法模式又简称为工厂模式(Factory Pattern),又可称作虚拟构造器模式(Virtual Constructor Pattern)或多态工厂模式(Polymorphic Factory Pattern)。...原创 2018-09-09 17:38:52 · 2370 阅读 · 1 评论