设计模式


设计模式

设计模式是指在软件设计中,经常被反复使用的一些方法,其核心目的是解决软件设计中面临的面向对象设计问题。设计模式是一种经验总结,是经过实践验证的,广泛应用的解决问题的方案。

设计模式的分类

设计模式可以分为三种分类:创建型模式、行为型模式和结构型模式。

创建型模式

创建型模式包括工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式。其目的是尽可能地将系统与类的实例化过程松耦合。

工厂模式

工厂模式是指定义一个创建对象的接口,让子类决定将哪一个类实例化。工厂模式使一个类的实例化延迟到了子类中进行。

抽象工厂模式

抽象工厂模式是指提供一个接口,用于创建一系列相关对象,而无需指定它们具体的类。

单例模式

单例模式是指一个类只有一个实例,且这个实例需要被全局访问。

建造者模式

建造者模式是指将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。

原型模式

原型模式是指通过复制一个已经存在的实例来返回新的实例。

行为型模式

行为型模式包括模板模式、策略模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式和中介者模式。其目的是尽可能的把系统的分离和松耦合。

模板模式

模板模式是指定义一个操作中的算法骨架,而将一些步骤延迟到子类中进行。

策略模式

策略模式是指定义一系列算法,将每个算法都封装起来,且使它们可以互相替换。

观察者模式

观察者模式是指当一个对象状态的改变会影响到其他对象时,就需要使用观察者模式。

迭代器模式

迭代器模式是指提供一种访问一个聚合对象中各个元素的方法,而又不需要暴露该对象的内部表示。

责任链模式

责任链模式是指为解除请求的发送者和接受者之间的耦合,而让多个对象都有可能接受请求。

命令模式

命令模式是指将一个请求封装为一个对象,从而使可以使用不同的请求对客户进行参数化。

备忘录模式

备忘录模式是指在不破坏封装性的前提下,捕获一个对象的状态,并在该对象之外保存该状态。

状态模式

状态模式是指允许一个对象在其内部状态改变时改变其行为。

访问者模式

访问者模式是指封装一些作用于某种数据结构的各种元素的操作,可以在不改变数据结构的前提下定义作用于这些元素的新操作。

中介者模式

中介者模式是指用一个中介对象来封装一系列的对象交互。

结构型模式

结构型模式包括适配器模式、桥接模式、装饰者模式、组合模式、外观模式和享元模式。其目的是尽可能的把系统中的不同角色的功能进行分类和封装。

适配器模式

适配器模式是指将一个类的接口转换为客户希望的另外一个接口。

桥接模式

桥接模式是指将抽象部分与它的实现部分分离,使它们都可以独立地变化。

装饰者模式

装饰者模式是指以对客户端透明的方式扩展对象的功能。

组合模式

组合模式是指将对象组合成树形结构,以表示“部分-整体”的层次结构。

外观模式

外观模式是指为子系统中的一组接口提供一个一致的界面,以便更清晰地使用该子系统。

享元模式

享元模式是指使用共享对象来有效地支持大量的细粒度对象。