设计模式
2020-12-05 17:50:33 0 举报
AI智能生成
设计模式笔记
作者其他创作
大纲/内容
行为型模式
责任链模式(Chain of Responsibility Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
处理者(Handler)
具体处理者(ConcreteHandler)
show
应用实例
Spring拦截器链
servlet过滤器链
dubbo中的Filter
两种实现方式
纯链
不纯链
命令模式(Command Pattern)
简介
应用场景
主要解决
优缺点
优点
缺点
角色与code
接受者(Receiver)
命令接口(Command)
具体命令(ConcreteCommand)
请求者(Invoker)
show
解释器模式(Interpreter Pattern)
简介
应用场景
优缺点
角色与code
抽象表达式(AbstractExxpression)
终结符表达式(TerminalExpression)
非终结符表达式(NonterminalExpression)
上下文(Context)
迭代器模式(Iterator Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
集合(Aggregate)
具体集合(ConcreteAggregate)
迭代器(Iterator)
具体迭代器(ConcreteIterator)
应用实例
List
Set
中介者模式(Mediator Pattern)
简介
主要解决
应用场景
优缺点
优点
缺点
角色与code
中介者(Mediator)
具体中介者(ConcreteMediator)
同事(Colleague)
具体同事(ConcreteColleague)
show
应用
备忘录模式(Memento Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
原发者(Originator)
备忘录(Memento)
负责人(Caretaker)
show
观察者模式(Observer Pattern)
简介
主要解决
应用场景
优缺点
优点
缺点
角色与code
主题(Subject)
观察者(Observer)
具体主题(ConcreteSubject)
具体观察者(ConcreteObserver)
两种实现方式
推
拉
两种方式的比较
java的支持
状态模式(State Pattern)
简介
主要解决
应用场景
优缺点
优点
缺点
角色与code
环境(Context)
抽象状态(State)
具体状态(ConcreteState)
show
与策略模式对比
具体子类之间的交互
环境角色的职责不同
解决问题的重点不同
三种实现方式
规定转换流程
State条件切换(实用)
状态机
空对象模式(Null Object Pattern)
简介
应用场景
code
实例应用
Spring的NullBean声明
cool写法
策略模式(Strategy Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
策略(Strategy)
具体策略(ConcreteStrategy)
上下文(Context)
show
与其他模式区别
工厂模式
模板模式(Template Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
抽象模板(Abstract Template)
具体模板(Concrete Template)
与策略模式区别
实际应用
Servlet
访问者模式(Visitor Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
抽象元素(Element)
具体元素(Conrete Element)
对象结构(Object Structure)
抽象访问者(Visitor)
具体访问者(Concrete Visitor)
结构型模式
组合模式(Composite Pattern)
简介
使用场景
优缺点
优点
缺点
装饰器模式(Decorator Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
抽象组件(Component)
具体组件(ConreteComponent)
装饰者(Decorator)
具体装饰者(ConreteDecorator)
show
应用实例
io流
外观模式(Facade Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
子系统(Subsystem)
外观(Facade)
show
代理模式(Proxy Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
抽象主题(Subject)
实际主题(RealSubject)
代理(Proxy)
代理种类
静态代理
code
动态代理
JDK动态代理
CGLIB动态代理
CGLIB比jdk代理快?
应用实例
SpringAOP
对比
与适配器
与装饰者
适配器模式(Adapter Pattern)
简介
应用场景
优缺点
优点
缺点
角色
目标(Target)
被适配者(Adaptee)
适配器(Adapter)
应用实例
jdbc
实现方式code
类适配
对象适配
享元模式(Flyweight Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
享元接口(Flyweight)
具体享元(Concrete Flyweight)
享元工厂(Flyweight Factory)
应用实例
Integer
Long
String常量池
与单例模式比较
过滤器模式(Filter、Criteria Pattern)
简介
应用场景
优点
角色与code
抽象过滤器角色(AbstractFilter)
具体滤器角色(ConcreteFilter)
被过滤角色(Subject)
实际应用
Filter过滤器
jdk8
filter
桥接模式(Bridge Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
抽象(Abstraction)
实现者(Implementor)
细化对象(Refined Abstraction)
具体实现者(Concrete Implementor)
自我理解
比较
与组合模式
与适配器模式
原则与法则
开闭原则(Open Close Principle)
里氏代换原则(Liskov Substitution Principle)
依赖倒转原则(Dependence Inversion Principle)
接口隔离原则(Interface Segregation Principle)
合成复用原则(Composite Reuse Principle)
迪米特法则,又称最少知道原则(Demeter Principle)
创建型模式
工厂模式(Factory Pattern)
简介
优缺点
优点
缺点
应用场景
角色
code
与简单工厂对比
抽象工厂模式(Abstract Factory Pattern)
简介
应用场景
优缺点
优点
缺点
角色
code
自我理解
单例模式(Singleton Pattern)
简介
应用场景
举例
常规饿汉
常规懒汉
内部静态类实现
枚举实现
优点
建造者模式(Builder Pattern)
简介
应用场景
优缺点
优点
缺点
角色与code
产品(Product)
抽象生成器(Builder)
具体生成器(ConcreteBuilder)
指挥者(Director)
与工厂方法的不同
应用实例
原型模式(Prototype Pattern)
简介
应用场景
优缺点
优点
缺点
深浅拷贝
浅拷贝
深拷贝
code
clone的要求
两种实现形式
简单形式
登记形式
UML图

收藏
0 条评论
下一页