设计模式知识图谱
2020-08-07 22:01:08 0 举报
AI智能生成
设计模式图谱
作者其他创作
大纲/内容
工厂模式(Factory)
创建型
种类
简单工厂模式
定义一个创建对象的接口 (new) , 扩展性差(开分店了怎么办)
案例讲解
工厂方法模式
定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
案例讲解
抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
案例讲解
单例模式(Singleton)
定义: 确保一个类只有一个实例,并提供全局访问点
创建型
种类
懒汉式
饿汉式
DCL(双重检查锁)
静态内部类
枚举
案例讲解
策略模式(Strategy)
定义一系列的算法,把他们一个个封装起来,并使他们可以互相替换,
本模式使得算法可以独立于使用它们的客户
本模式使得算法可以独立于使用它们的客户
行为型
案例讲解
模板方法模式(Template Method)
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,
Template Method使得子类可以不改变一个算法的结构
即可以重定义该算法得某些特定步骤
Template Method使得子类可以不改变一个算法的结构
即可以重定义该算法得某些特定步骤
行为型
案例讲解
代理模式(Proxy)
结构型
为其他对象提供一种代理以控制对这个对象的访问
种类
静态代理
动态代理
JDK
cglib
案例
适配器模式(Adapter)
结构型
将一类的接口转换成客户希望的另外一个接口,Adapter模式使得原本
由于接口不兼容而不能一起工作那些类可以一起工作。
由于接口不兼容而不能一起工作那些类可以一起工作。
案例
装饰者模式 (Decorator)
结构型
结构型
动态地给一个对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。
案例
观察者模式 (Visitor)
行为型
定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知自动更新
案例
命令模式 (Command)
行为型
将一个请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队和记录请求日志,以及支持可撤销的操作
案例
组合模式(composite)
结构型
将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性
案例
状态模式(State)
行为型
允许对象在其内部状态改变时改变他的行为,对象看起来似乎改变了他的类
案例
6大OO设计原则
开闭原则(总原则)
对扩展开放,对修改关闭
里氏替换原则
子类可以扩展父类的功能,但不能改变父类原有的功能
依赖倒置原则
通过要面向接口的编程来降低类间的耦合性
单一职责原则
对象(类)不应该承担太多职责
接口隔离原则
将臃肿庞大的接口拆分成更小的和更具体的接口
迪米特法则
只与你的直接朋友交谈,不跟“陌生人”说话
合成复用原则
尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现
设计模式分类
创建型
对象的实例化过程进行抽象
简单工厂模式
工厂方法模式
抽象工厂模式
建造者模式
原型模式
单例模式
结构型
通过对多个类和对象进行组合得到复杂结构的类
适配器模式
桥接模式
组合模式
装饰器模式
外观模式
享元模式
代理模式
行为型
对在不同的对象之间划分责任和算法的抽象化
责任链模式
命令模式
迭代器模式
中介者模式
备忘录模式
观察者模式
访问者模式
策略模式
状态模式
模板方法模式
解释器模式
其他模式
桥接模式(Bridge)
结构型
将抽象部分与它的实现部分相分离,使他们可以独立的变化
生成器模式(Builder)
创建型
将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建不同的表示
责任链模式(Chain of Responsibility)
行为型
使多个对象都有机会处理请求,从而避免请求的送发者和接收者之间的耦合关系
解释器模式(Interpreter)
行为型
给定一个语言,定义他的文法的一个表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子
中介者模式(Mediator)
行为型
用一个中介对象封装一系列的对象交互
备忘录模式(Memento)
行为型
在不破坏对象的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态
原型模式(Prototype)
创建型
用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新的对象
访问者模式(Visitor)
结构型
表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素类的前提下定义作用于这个元素的新操作
享元模式(Flyweight)
结构型
享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的
0 条评论
下一页