代理模式

发布时间 : 2018-12-12
发布 : 2018-12-12 分类 : 设计模式 浏览 :

介绍

引入一个新的代理对象, 代理对象在客户端对象和目标对象之间起到中介的作用, 它去掉客户不能看到的内容和服务或者增添客户需要的额外的新服务.

结构

桥接模式

发布时间 : 2018-12-12
发布 : 2018-12-12 分类 : 设计模式 浏览 :

介绍

将继承关系转化成关联关系, 降低类与类之间的耦合度, 使系统更加灵活, 减少了系统中类的数量.

结构

  • 抽象类: 一般是抽象类而不是接口, 其中定义了一个Implementor(实现类接口)类型的对象并可以维护该对象.
  • 扩充抽象类
  • 实现类接口
  • 具体实现类
    桥接模式

组合模式

发布时间 : 2018-12-10
发布 : 2018-12-10 分类 : 设计模式 浏览 :

介绍

对树形模式处理相对合适, 将对象组合成树形结构以表示“部分-整体”的层次结构, 使得用户对单个对象和组合对象的使用具有一致性.

结构

  • 抽象构件
  • 叶子构件
  • 容器构件
    组合模式

获取IP和byte转long遇到的小问题

发布时间 : 2018-12-10
发布 : 2018-12-10 分类 : issue 浏览 :

介绍

因为业务需求新项目的流水号系统从 ‘数据库自增步长+分段式锁’ 换成使用 雪花流水号, 修改机器标识和数据中心字段为自动获取ip后三位, 人工保证ip后三位不相同

示例

雪花流水号 - 改造版

修改内容如下:
删除构造, 修改数据位数, 添加静态代码块

享元模式

发布时间 : 2018-12-07
发布 : 2018-12-07 分类 : 设计模式 浏览 :

介绍

运用共享技术有效地支持大量细粒度对象的复用.

结构

  • 抽象享元类
  • 具体享元类
  • 非共享具体享元类
  • 享元工厂类

    举例: java.lang.Integer#valueOf(int)
    

    Integer-valueOf

适配器模式

发布时间 : 2018-12-06
发布 : 2018-12-06 分类 : 设计模式 浏览 :

介绍

将一个接口转换成客户希望的另一个接口, 使接口不兼容的那些类可以一起工作, 其别名为包装器(Wrapper).

结构

  • 目标抽象类: 目标抽象类定义客户所需接口, 可以是一个抽象类或接口, 也可以是具体类.
  • 适配器类: 转换器, 它通过继承Target并关联一个Adaptee对象使二者产生联系.
  • 适配者类: 适配者即被适配的角色, 一般是类
    适配器模式

装饰者模式

发布时间 : 2018-12-05
发布 : 2018-12-05 分类 : 设计模式 浏览 :

介绍

在不必改变原类文件和使用继承的情况下, 动态地扩展一个对象的功能.

结构

  • 抽象构件: 具体构件和抽象装饰都是抽象构件的子类
  • 具体构件
  • 抽象装饰
  • 具体装饰

    mybatis -> org.apache.ibatis.cache.Cache
    

    装饰者模式

外观模式

发布时间 : 2018-12-04
发布 : 2018-12-04 分类 : 设计模式 浏览 :

介绍

外观模式又称为门面模式, 为子系统中的一组接口提供一个统一的入口.
主要作用是通过客户端统一调用外观角色, 降低系统的复杂程度.

结构

  • Facade(外观角色)
  • SubSystem(子系统角色)
    外观模式