23种设计模式

设计模式主要分为三大类

1.创建型模式

2.结构型模式

3.行为型模式

1.创建型模式

创建型模式关注对象的创建过程

(1) 工厂方法模式(Factory Method Pattern)

用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式是以一个类的实例化延迟到其子类

(2) 抽象工厂模式(Abstract Factory Pattern)

为创建一组相关或相互依赖对象提供了一个接口,而且无需指定它们的具体类

(3) 单例模式(Singleton Pattern)

要求一个类有且仅有一个实例,并且提供了一个全局的访问点,在同一时刻只能被一个线程所访问

(4) 建造者模式(Builder Pattern)

将复杂对象的构造与其表示分离,以便相同的构造过程可以创建不同的表示

(5) 原型模式(Prototype Pattern)

指定使用原型实例创建的对象类型,并通过复制此原型创建新对象

2.结构型模式

结构型模式关注对象和类的组织

(6) 适配器模式(Adapter Pattern)

(7) 装饰者模式(Decorator Pattern)

(8) 代理模式(Proxy Pattern)

(9) 外观模式(Facade Pattern)

(10) 桥接模式(Bridge Pattern)

(11) 组合模式(Composite Pattern)

(12) 享元模式(Flyweight Pattern)


 

3.行为型模式

行为型模式关注系统中对象之间的相互交互,研究系统在运行时对象之间相互通信和协作,进一步明确对象的职责

(13) 模板方法模式(Template Method Pattern)

(14) 命令模式(Command Pattern)

(15) 迭代器模式(Iterator Pattern)

(16) 观察者模式(Observer Pattern)

(17) 中介者模式(Mediator Pattern)

(18) 备忘录模式(Memento Pattern)

(19) 解释器模式(Interpreter Pattern)

(20) 状态模式(State Pattern)

(21) 策略模式(Strategy Pattern)

(22) 职责链模式(Chain of Responsibility Pattern)

(23) 访问者模式(Visitor Pattern)

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

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值