Java 设计模式
2021-09-29 17:57:07 0 举报
AI智能生成
Java 设计模式
作者其他创作
大纲/内容
font color=\"#ff00ff\
面向对象(oo) =>功能模块编写[设计模式+算法+数据结构] => 框架[使用多种设计模式] => 架构[服务器集群技术]
font color=\"#ff0000\
设计模式内容--经典面试题
软件使用设计模式
代码使用设计模式
设计模式概述
注意事项和细节
问题代码
优化后的方式2
最终方式3
单一职责原则
PlantUML 代码为
PlantUML 优化代码为
接口隔离原则
依赖倒转的中心思想是面向接口编程
使用接口或者抽象类的目的是font color=\"#ff0000\
概念
问题1
优化后代码1
依赖倒转(倒置)原则
在编程中如何正确的使用继承? =>里氏替换原则
OOP中的继承性的思考和说明
里氏替换原则
开闭原则
概述
陌生类最好不要以局部变量的形式出现在类的内部
迪米特法则
合成复用原则
七大设计原则
UML(Unified modeling language UML) 统一建模语言
表示泛化(继承)
<|--
组合
*--
聚合
o--
表示依赖
<|..
关联
--
常用的符号
用例图
静态结构图 : font color=\"#ff0000\
UML图分类
关联关系: font color=\"#ff0000\
https://plantuml.com/zh/class-diagram
UML类图
单例模式
抽象工厂模式
原型模式
建造者模式
工厂模式
适配器模式
桥接模式
装饰模式
组合模式
外观模式
享元模式
代理模式
模板方法模式
命令模式
访问者模式
迭代器模式
观察者模式
中介者模式
备忘录模式
解释器模式
状态模式
策略模式
责任链模式
设计模式三种类型
优点
缺点
饿汉式(静态变量)
饿汉式(静态代码块)
懒汉式(线程不安全)
解决了线程不安全的问题
双重检查
采用了类装载机制来保证初始化实例只有一个线程
静态内部类
枚举
单例模式 8 种写法
Runtime类
JDK展示
注意事项和细节说明
单例(singleton)模式
是font color=\"#ff0000\
简单工厂模式
工厂方法模式
Calendar类
JDK源码工厂模式
不要覆盖基类中已经实现的方法
小结
工厂(factory)模式
克隆羊问题
改进思路
一般解决思路
优点: 让程序具有更高的效率和扩展性
在Spring源码中 bean的作用域 prototype 就用到了原型模式
浅拷贝
实现方式
深拷贝
原型(prototype)模式
AbsHouse
CommonHouse
测试类
传统方式解决
建造者模式 又叫 font color=\"#ff0000\
基本介绍
House(产品角色)
AbsHouse(抽象建造者)
CommonHouse(具体建造者)
BuliderDirector(指挥者)
AbstractStringBuilder 抽象类实现了 font color=\"#ff0000\
JDK源码展示 StringBuilder
抽象工厂 VS 建造者模式
建造者(Builder)模式
创建型模式
类适配器模式
对象适配器模式
接口适配器模式
分类三类
工作原理
适配器代替controller 执行相应方法
源码展示 SpringMVC
V220
AdapterInterfaces
Adapter5V
Phone
Test
对象适配器---代码展示
Brand
xiaomi
qumianping
代码展示
桥接模式在JDBC的源码
JDBC驱动程序
银行转账系统
消息管理
应用场景
桥接(Bridge)设计模式
装饰者(Decorator)模式
又叫 font color=\"#ff00ff\
组合模式以font color=\"#ff00ff\
组合模式使得font color=\"#ff00ff\
解决问题
组合(composite)模式
基本概念
外观(facade)模式
内部状态和外部状态
享元(Flyweight)模式
静态代理
动态代理
cglib 代理也叫作font color=\"#ff0000\
在aop编程中如何选择代理模式
cglib包底层是通过使用字节码处理框架ASM来转换字节码并生成新的类
cglib代理
常见的代理模式--几种变体
代理(proxy)模式
结构型模式
又叫font color=\"#ff0000\
模板方法的钩子方法
模板方法模式使用场景
模板(template)方法模式
命令(command)模式
访问者模式的基本工作原理是: 在被访问的类里面加一个对外提供接待访问者的接口
访问者(Visitor)模式
如果我们的font color=\"#ff0000\
迭代器(iterator)模式
对象之间font color=\"#ff0000\
观察者(Observer)模式
中介者(mediator)模式
备忘录(memento)模式
一些重复出现的问题可以用一种简单的语言来表示
一个简单的语法需要解释的场景
可以将一个需要解释执行的语言中的句子表示为一个抽象语法树
解释器(interpreter)模式
状态(State)模式
这个算法体现了几个设计原则
注意事项和细节
策略(strategy)模式
责任链(Chain of responsibility)模式
Java 设计模式
0 条评论
回复 删除
下一页