Java设计模式

Java设计模式

学习网站

1,七大设计原则

  • 单一职责原则

  • 接口隔离原则

  • 依赖倒转原则

    • 依赖关系传递的三种方式和应用案例
      • 接口传递
      • 构造方法传递
      • setter方式传递
  • 里氏替换原则

  • 开闭原则。开闭原则是编程中最基础,最重要的设计原则。

  • 迪米特原则

  • 合成复用原则:原则是尽量使用合成/聚合的方式,而不是使用继承
    在这里插入图片描述

  • 设计原则核心思想
    在这里插入图片描述

2,UML类图

  • UML — Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果
    在这里插入图片描述

  • UML类图是用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系

  • 类之间的关系:依赖,泛化(继承),实现,关联,聚合与组合

  • 依赖:只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。
    在这里插入图片描述

  • 泛化关系实际上就是继承关系,它是依赖关系的特例。如果A类继承了B类,我们就说A和B存在泛化关系。

  • 实现关系实际上就是A类实现B类,它是依赖关系的特例

  • 关联关系实际上是类与类之间的联系,它是依赖关系的特例;关联具有导航性,即双向关系或单向关系。
    在这里插入图片描述

  • 聚合关系表示的是整体和部分的关系,整体和部分可以分开。聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。
    在这里插入图片描述

  • 组合关系,也是整体与部分的关系,但是整体与部分不可以分开。
    在这里插入图片描述

  • 可以分离就是聚合关系,不可以分离就是组合关系

设计模式

  • 设计模式分为三种类型,共23种
    • 创建型模式
    • 结构型模式
    • 行为型模式
1,单例模式

在这里插入图片描述

  • 懒汉式
    在这里插入图片描述

在这里插入图片描述

  • 外部类装载的时候,静态内部类不会加载

  • 单例模式(静态内部类)
    在这里插入图片描述

  • 单例模式注意事项
    在这里插入图片描述

工厂模式
  • 简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为(代码)。在软件开发中,当我们会用到大量的创建某种,某类或者某批对象时,就会使用到工厂模式。

  • 工厂方法模式
    在这里插入图片描述

  • 抽象工厂模式

  • 工厂模式小结
    在这里插入图片描述

原型模式

在这里插入图片描述

  • 原型模型-基本介绍
    在这里插入图片描述

  • 深拷贝和浅拷贝

  • 注意如果成员变量中有字符串,clone也是浅拷贝
    在这里插入图片描述
    在这里插入图片描述

建造者模式

  • 将产品和产品建造过程解耦 ==》建造者模式
  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 建造者模式所创建的产品一般具有较多的共同点,其组成部分相似,如果产品之间的差异性很大,则不适合使用建造者模式,因此其使用范围受到一定的限制。
适配器模式
  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述
  • 类适配器
    在这里插入图片描述
桥接模式
  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述
装饰者设计模式

在这里插入图片描述

  • 定义
    在这里插入图片描述
组合模式
  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
外观模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述
  • 注意事项和细节
    在这里插入图片描述
享元模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述
  • String中关于new和直接赋值
  • Integer.valueOf(x) x在 -128— 127之间,就是使用享元模式,如果不在范围内,就仍然new

在这里插入图片描述

  • 注意事项
    在这里插入图片描述
代理模式
  • 基本介绍
    在这里插入图片描述
  • 动态代理又叫JDK代理或者接口代理
静态代理
  • 基本介绍
    在这里插入图片描述

  • 静态代理优缺点
    在这里插入图片描述

动态代理
  • 基本介绍
    在这里插入图片描述
Cglib代理
  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述
  • 代理模式的变体
    在这里插入图片描述
模板方法模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述
  • 模板方法中的钩子方法
    • 在模板方法模式的父类中,我们可以定义一个方法,它默认不做任何事,子类可以视情况要不要覆盖它,该方法称为“钩子”
      在这里插入图片描述
命令模式
  • 在这里插入图片描述
  • 基本介绍
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
访问者模式
  • 需求
    在这里插入图片描述
  • 基本介绍
    在这里插入图片描述
  • 双分派
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
迭代器模式
  • 需求
    在这里插入图片描述
  • 基本介绍
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
观察者模式
  • 需求
    在这里插入图片描述
  • 原理
    在这里插入图片描述
    在这里插入图片描述
中介者模式
  • 需求
    在这里插入图片描述
  • 基本介绍
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
备忘录模式
  • 需求
    在这里插入图片描述
  • 基本介绍
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
解释器模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述

  • 注意事项
    在这里插入图片描述

状态模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述
  • 注意事项
    在这里插入图片描述
策略模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述

  • 注意事项
    在这里插入图片描述

职责链模式

在这里插入图片描述

  • 基本介绍
    在这里插入图片描述
    在这里插入图片描述

  • 注意事项
    在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值