23种设计模式极速记忆法(全网独一无二)

作为程序员,面试不可能不被问到设计模式,通篇读下来,发现基本记不住,记住了,突然被问到,那肯定又是脑袋嗡嗡嗡的。
 

设计模式分为三种类型:

  • 创建型设计模式(4种:工厂模式(工厂模式、抽象工厂模式)、单例模式、原型模式、建造者模式)主要用户创建对象;
  • 结构型设计模式(8种:代理模式、外观模式、装饰器模式、享元模式、组合模式、适配器模式、桥接模式、过滤器)主要关注类和对象的组合;
  • 行为型设计模式(11种:模板模式、策略模式、迭代器模式、中介模式、备忘录模式、解释器模式、观察者模式、访问者模式、状态模式、责任链模式、命令模式)主要关注对象间通信的问题。

极速记忆方式

创建型:
创建模式创对象。工厂模式要抽象;单例只有一个类;拷贝原型创对象;建造复杂的对象。
解释:创建模式主要用于创建对象。
工厂模式根据业务需要分为简单工厂模式、工厂方法模式和抽象工厂模式;
原型模式用于创建重复的对象,通过拷贝这些原型创建新的对象;
建造者模式使用多个简单的对象一步一步构建成一个复杂的对象。

结构型:
结构组合类对象。代理外观装饰器;享元组合适配器;桥接不继过滤器。
代理对象访问者;外观就是迪米特;装饰对象添职责;享元模式复对象。
组合整体和部分;适配添加新功能;桥接抽象实现全独立;开发常写过滤器。

解释:结构型设计模式主要关注类和对象的组合。主要有代理模式、外观模式、装饰器模式、享元模式、组合模式、适配器模式、桥接模式不能继承,过滤器模式。
代理模式为其他对象提供一种代理以控制对这个对象的访问;
外观模式通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式,这是典型的”迪米特原则“;
装饰器模式动态地给一个对象添加一些额外的职责;
享元模式运用共享技术来有效地支持大量细粒度对象的复用;
组合模式将对象组合成树形结构以表示"部分-整体"的层次结构;
适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作;
桥接模式将抽象部分与实现部分分离,使它们都可以独立的变化;
过滤器模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来

行为型:
行为对象间通信。模板策略迭代器,中介备忘解释器,观察访问有状态,责任命令要常记。
子类抽象用模板,算法替换用策略,顺序遍历用迭代,封装交互用中介;
保存状态需备忘,文法解析解释器,状态变化观察者,数据解耦访问者;
对象行为改状态,对象延续责任链,解耦请求和处理,这种设计叫命令。

解释:行为模式主要关注对象间通信的问题,行为模式主要有模板模式、策略模式、迭代器模式、中介模式、备忘录模式、解释器模式、观察者模式、访问者模式、状态模式、责任链模式、命令模式。
模板模式是指一个抽象类公开定义了执行它的方法的方式/模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行;
策略模式定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换;
迭代器模式是指顺序访问集合对象的元素,不需要知道集合对象的底层表示;
中介者模式指的是用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用;
备忘录模式在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态;
解释器模式给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子;
观察者模式当一个对象被修改时,则会自动通知依赖它的对象;
访问者模式主要将数据结构与数据操作分离;
状态模式允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类;
责任链模式让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止;
命令模式将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化;

其中行为型是开发中用的最多的,很多时候都在用,只是不知道罢了,比如遍历一个对象其实就是用了迭代器,发布/订阅就说观察者模式等等,希望本文对面试有一定帮助。

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值