设计模式
设计模式
设计模式是指在软件设计中,经常被反复使用的一些方法,其核心目的是解决软件设计中面临的面向对象设计问题。设计模式是一种经验总结,是经过实践验证的,广泛应用的解决问题的方案。
设计模式的分类
设计模式可以分为三种分类:创建型模式、行为型模式和结构型模式。
创建型模式
创建型模式包括工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式。其目的是尽可能地将系统与类的实例化过程松耦合。
工厂模式
工厂模式是指定义一个创建对象的接口,让子类决定将哪一个类实例化。工厂模式使一个类的实例化延迟到了子类中进行。
抽象工厂模式
抽象工厂模式是指提供一个接口,用于创建一系列相关对象,而无需指定它们具体的类。
单例模式
单例模式是指一个类只有一个实例,且这个实例需要被全局访问。
建造者模式
建造者模式是指将一个复杂对象的构建与其表示分离,使同样的构建过程可以创建不同的表示。
原型模式
原型模式是指通过复制一个已经存在的实例来返回新的实例。
行为型模式
行为型模式包括模板模式、策略模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式和中介者模式。其目的是尽可能的把系统的分离和松耦合。
模板模式
模板模式是指定义一个操作中的算法骨架,而将一些步骤延迟到子类中进行。
策略模式
策略模式是指定义一系列算法,将每个算法都封装起来,且使它们可以互相替换。
观察者模式
观察者模式是指当一个对象状态的改变会影响到其他对象时,就需要使用观察者模式。
迭代器模式
迭代器模式是指提供一种访问一个聚合对象中各个元素的方法,而又不需要暴露该对象的内部表示。
责任链模式
责任链模式是指为解除请求的发送者和接受者之间的耦合,而让多个对象都有可能接受请求。
命令模式
命令模式是指将一个请求封装为一个对象,从而使可以使用不同的请求对客户进行参数化。
备忘录模式
备忘录模式是指在不破坏封装性的前提下,捕获一个对象的状态,并在该对象之外保存该状态。
状态模式
状态模式是指允许一个对象在其内部状态改变时改变其行为。
访问者模式
访问者模式是指封装一些作用于某种数据结构的各种元素的操作,可以在不改变数据结构的前提下定义作用于这些元素的新操作。
中介者模式
中介者模式是指用一个中介对象来封装一系列的对象交互。
结构型模式
结构型模式包括适配器模式、桥接模式、装饰者模式、组合模式、外观模式和享元模式。其目的是尽可能的把系统中的不同角色的功能进行分类和封装。
适配器模式
适配器模式是指将一个类的接口转换为客户希望的另外一个接口。
桥接模式
桥接模式是指将抽象部分与它的实现部分分离,使它们都可以独立地变化。
装饰者模式
装饰者模式是指以对客户端透明的方式扩展对象的功能。
组合模式
组合模式是指将对象组合成树形结构,以表示“部分-整体”的层次结构。
外观模式
外观模式是指为子系统中的一组接口提供一个一致的界面,以便更清晰地使用该子系统。
享元模式
享元模式是指使用共享对象来有效地支持大量的细粒度对象。