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代理
- 基本介绍
- 代理模式的变体
模板方法模式
- 基本介绍
- 模板方法中的钩子方法
- 在模板方法模式的父类中,我们可以定义一个方法,它默认不做任何事,子类可以视情况要不要覆盖它,该方法称为“钩子”
- 在模板方法模式的父类中,我们可以定义一个方法,它默认不做任何事,子类可以视情况要不要覆盖它,该方法称为“钩子”
命令模式
- 基本介绍
- 注意事项
访问者模式
- 需求
- 基本介绍
- 双分派
- 注意事项
迭代器模式
- 需求
- 基本介绍
- 注意事项
观察者模式
- 需求
- 原理
中介者模式
- 需求
- 基本介绍
- 注意事项
备忘录模式
- 需求
- 基本介绍
- 注意事项
解释器模式
-
基本介绍
-
注意事项
状态模式
- 基本介绍
- 注意事项
策略模式
-
基本介绍
-
注意事项
职责链模式
-
基本介绍
-
注意事项