随笔分类 - java设计模式
摘要:设计模式转载一篇博文: https://bugstack.cn/itstack-demo-design/2020/07/02/%E9%87%8D%E5%AD%A6-Java-%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F-%E5%AE%9E%E6%88%98%E7%8A%B
阅读全文
摘要:概念: 将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。· 作用 (1)统一了组合对象和叶子对象(2)简化了客户端调用(3)易扩展,松耦合,组合对象和叶子对象能结合在一起工作 使用场景 (1) 在具有整体和部分的层次结构中,希望通过一种方式忽
阅读全文
摘要:概述 通过一个抽象类定义一个公共骨架,生成类的步骤都通过这个骨架完成。公共的部分可以通过抽象类中的方法完成,对于不同子类需要执行的不同逻辑,子类可以实现这些抽象方法完成。 使用场景 1.算法或操作遵循相似的逻辑; 2.多个子类有相同方法 UML图 抽象模板(Abstract Template)角色有
阅读全文
摘要:装饰者模式 装饰者模式以对客户端透明的方式扩展原有对象的功能,不通过继承的方式,比使用子类更加灵活,原有子类结构也无需改变,不影响子类。 使用场景,及优缺点使用场景: 替代继承,扩展一个类的功能 动态的给一个对象添加功能,以及动态的撤销该功能优点 动态扩展一个实现类的功能,在不需要添加功能的时候,可
阅读全文
摘要:概述 策略模式是对具体算法和逻辑的包装,把使用算法的责任和算法本身分开,系统可以在对应情况下动态选择集中算法中的一种,实现某个特定功能。 客户端增加行为不用修改源代码,只需要添加一个子类,可以减少if else的使用。 UML Context(上下文对象):持有Strategy的上下文对象,调用op
阅读全文
摘要:概述 以电源插座为例,有三孔插头和二孔插头,各个国家标准不一,国外版笔记本如果想在国内插上插头充电,我们肯定都会准备一个转接头将三孔插头/二孔插头转为跟笔记本电源插头来匹配,充上电。这是我们生活中的适配器。 在java中,我们把一个类的接口转换成客户端想要的另一个接口(也就是把国内插孔,转为国外插孔
阅读全文
摘要:概念: 什么是代理模式: 为其他对象提供一种代理,来控制对这个对象的访问;有些情况下一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用 作用 1.隐藏委托类的具体实现 2.实现客户端和委托类的解耦,不改动委托类的情况下增加功能(如日志) 类图 以去超市买东西
阅读全文
摘要:概述 原型模式即为有一个样例模板,用户可以从这个模板中克隆出一个一样的对象。 使用场景 1.创建对象时,不仅继承父类结构,还包括继承原型对象的数据; 2.对目标对象的修改,不影响原型对象; 3.隐藏clone操作; UML图 client:客户端角色 Prototype:抽象原型角色,抽象类/接口,
阅读全文
摘要:单例模式一般分为:懒汉、饿汉、双重校验锁、枚举、静态内部类五种。 懒汉: 第一次调用时,创建对象 public class Single { private static Single instance; private Single(){}; public static Single getIns
阅读全文
摘要:建造者模式(Builder Design) 定义 把一个复杂对象的构建和表示分离开,使同样的构建构成可以创建不同的表示(官方的定义) UML图说明 抽象建造者接口( Builder):抽象定义的建造者(非必须的) 导演角色类(Director): 统一的指挥者角色,去指定建造目标(非必须的) 具体建
阅读全文
摘要:工厂模式介绍 工厂模式具体包括:简单工厂,工厂方法,抽象工厂这三种,由简单->复杂,可以理解为把对象的创建过程进行了抽象,也可以理解为将创建对象的过程进行封装,作为client仅仅需要使用对象,而不关心创建对象的具体过程。创建型的设计模式基本都是遵循这样一个原则。 抽象工厂 UML图说明 1.抽象工
阅读全文
摘要:创建型设计模式: 创建型?创建什么,当然是创建对象了。我们最常用的方式就是new()一个对象了,然后set相关的属性,这是使用对象的第一步。但是很多场景下,我们需要给client提供更友好的创建对象方式,或者我们自己也需要创建从别处引用的对象。 第一步操作最终目的是生产一个实例对象,在设计模式中属于
阅读全文

浙公网安备 33010602011771号