随笔分类 - 设计模式
摘要:设计模式-策略模式(服务定位器模式) 前言: 正文开始前先抛出一个问题,项目开发中如果让你设计支付模块,目前有支付宝、微信、各大银行的部分,你会如何设计支付这块的代码?在调用的客户端一般都是用if else去做判断,比如类型等于ALIPAY,我就用支付宝的实现逻辑处理,那如果新加一种支付方式,是不是
阅读全文
摘要:在开发过程中经常会遇到业务逻辑比较复杂,有时根据不同的情况处理不同的业务。这里可以使用 InitializingBean 在项目初始化的时候,对一些数据进行缓存。 InitializingBean 的使用场景:InitializingBean 项目中需要在项目初始化的时候,对一些常用数据进行缓存 使
阅读全文
摘要:在模板模式中,定义了一个公开的执行模板的方法,字类可以按照需自己实现方法,但是它们的调用方法是必须要按照抽象类的方式来进行。 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决:一些方法通用,却在每一个子类都
阅读全文
摘要:观察者模式主要存在于一对多的情况下,一个对象的修改需要通知多个依赖它的对象,它属于行为型的一种模式; 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协
阅读全文
摘要:策略模式中一个类的行为可以在运行的时候进行更改,我们需要定义一个策略的接口,让所有的具体策略实现这个接口,然后封装一个可以执行策略的对象,可以通过传入不同的策略,执行不同的算法; 意图:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决:在有多种算法相似的情况下,使用 if.
阅读全文
摘要:抽象工厂模式相对于简单工厂模式,会复杂一些,但是扩展性变得更加好; 一、实现抽象工厂一共分一下几个步骤: 创建产品接口 创建产品抽象类 创建产品具体实现类 创建工厂接口 创建抽象工厂 创建具体工厂实现类 创造者调用创造方法 下面是简单的类图: 产品类图: 工厂类图: 1、创建产品接口 package
阅读全文
摘要:简单工厂模式的实现分为一下几个步骤(这里以工厂创建交通工具为例): 定义一个交通工具的总称(接口) 让实现类(具体的交通工具)实现这个接口 定义一个工厂(创建交通工具) 创造者调用工厂方法 下图是简单的类图可以帮助理解: 1、定义一个交通工具的总称(接口) package com.dongl.fac
阅读全文
摘要:代理模式相对于其他的设计模式来说比较简单:什么是代理模式呢?我很忙,忙的没空理你,那你要找我呢就先找我的代理人吧,那代理人总要知道被代理人能做哪些事情不能做哪些事情吧,那就是两个人具备同一个接口,代理人虽然不能干活,但是被代理人可以。 这里举个例子是模仿了《您的设计模式》中的经典案例,案例中讲述了一
阅读全文
摘要:单例模式模式一般大家都会认为它比较简单,其实并非你们所认为的那样,很多情况下,单例模式会涉及到很多优化,下面给大家简单介绍一下单例模式的几种演变过程: 饿汉模式 懒汉模式 懒汉模式(加锁关键字 synchronized) 懒汉模式(细粒度的添加synchronized) 懒汉模式(双重检查) 静态内
阅读全文