随笔分类 - 实战经验
摘要:1、模式描述 定义一个算法的系列,将其各个分装,并且使他们有交互性。策略模式使得算法在用户使用的时候能独立的改变。 在 Java 中,从 JDK1.8 开始支持函数式编程,就是策略模式的一种体现,且无需借助额外的类和接口,代码更加简洁。 2、模式结构 抽象策略类:定义策略算法的规范。 具体策略类:实
阅读全文
摘要:1、模式描述 模版方法模式属于类行为型模式,在父类中定义业务框架,并将某些步骤的实现延迟到子类实现,允许子类在不影响框架接口的的情况下,重写某些步骤。 2、模式结构 模版类:定义出业务执行步骤和骨架(模版方法),定义每个步骤的抽象规范,部分步骤可以默认实现。 具体业务实现类:继承或实现模版类,实现所
阅读全文
摘要:1、模式描述 组合模式属于结构型模式,把多个对象组成树状结构来表示局部与整体,这样用户可以以相同的方式对待单个对象和组合对象。需要注意的是这里的组合和之前系列中,我们说的组合关系(可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能)是两个完全不同的概念哈。 2、模式结构
阅读全文
摘要:1、描述 以共享的方法高效地支持大量细粒度对象的复用。在 Java 中,通过提前初始化对象或者首次使用后记录对象,后续使用就可以复用对象来实现享元模式。类似缓存技术。 2、模式结构 享元对象:可复用对象。 享元工厂类:享元对象的工厂类,负责创建、储存享元对象。客户端从工厂类请求对象有则返回,没有则创
阅读全文
摘要:1、描述 外观模式一般也被叫做门面模式,主要作用就是为客户端调用提供一套统一调用的门面接口。可以屏蔽下游服务的复杂性,是客户端的调用更加简单。 2、模式结构和实现逻辑 外观角色:此角色需要知道下游服务的功能和责任,对客户端提供统一调用接口,再将客户端的请求委派到各个下游服务去。 子服务角色:下游服务
阅读全文
摘要:1、描述 通过把对象引入包含行为的特殊封装中来为对象增强功能的模式。 2、模式结构与实现逻辑 具体业务类:这个类的对象就是需要被装饰者模式加强的对象。需要实现抽象装饰类。 抽象装饰类:装饰基类,用来记录装饰行为的抽象类或者接口。 装饰类:抽象装饰类的实现类,引入抽象装饰类的对象,重写装饰行为,并在父
阅读全文
摘要:软件设计模式白话文系列(八)桥接模式 1、描述 把一个事物的多个维度剥离出来,通过组合方式来达到灵活设计的目的,Java 中,我们一般是通过对象引用来替换继承关系,从而将抽象和实现解耦合。 桥接模式,可能大家只是不了解这个名称,但是我们的实际开发习惯基本都是有使用的。例如 spring 的注入功能(
阅读全文
摘要:1、描述 适配器模式顾名思义就是将某个类的接口转换成客户端期望的另一个接口表示。适配器模式可以消除由于接口不匹配所造成的类兼容性问题。 2、适用性 客户端需要调用现有的业务类,但此业务类的接口又不适用客户端的调用,这时就可以使用适配器模式,提供一个适配器类来达到目的。 3、实现逻辑 适配器模式一般包
阅读全文
摘要:1、描述 代理模式属于结构型模式中的一种,通过对代理对象的调用来达到对原对象的增强、减弱作用。通过代理类的生成时机,我们将编译期就生成代理类的情况称之为静态代理模式,而在 Java 运行期动态生成代理类的场景称为动态代理模式。动态代理又基于接口和继承两种实现方式分别分为 JDK 动态代理和 CGLi
阅读全文
摘要:1、描述 将一个对象的构造过程进行封装,并按照一定顺序进行构造。 通俗的讲,假如要创建电脑的对象,那么各个实例的属性不同,也就是电脑的配置各不相同.这个时候可以考虑用构造者模式。 2、适用性 当需要创建的对象创建过程复杂,如对象由多个部件构成,且各部件面临着复杂的变化。 3、实现逻辑 产品类:需要创
阅读全文
摘要:一、简单工厂模式 1、描述 简单工厂模式是属于创建型模式,但不属于23种 GOF 设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。 2、适用性 工厂类负责创建的对象(类型)比较少;客户只知道
阅读全文
摘要:软件设计模式白话文系列(三)原型模式 1、描述 用原型实例指定创建对象的种类,并且通过拷贝这些原型对象的属性来创建新的对象。通俗点的意思就是一个对象无需知道任何创建细节就可以创建出另外一个可定制的对象。可以简单看作为复制、粘贴操作。 原型模式的克隆分为浅克隆和深克隆。 浅克隆 克隆对象的属性和原对象
阅读全文
摘要:1、描述 确保一个类只有一个实例,并提供对该实例的全局访问。如果你创建了一个对象, 同时过一会儿后你决定再创建一个新对象, 此时你会获得之前已创建的对象, 而不是一个新对象。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这提供了一种访问其唯一的对象的方式,可以直接
阅读全文
摘要:1、幂等性是啥? 进行一次接口调用与进行多次相同的接口调用都能得到与预期相符的结果。 通俗的讲,创建资源或更新资源的操作在多次调用后只生效一次。 2、什么情况会需要保证幂等性 比如,购物时的下单操作,如前端提交按钮未做并发、抖动控制,那么用户点击一次。可能因为某些原因导致 Http 请求了多次,这就
阅读全文