设计模式之软件开发应该了解的知识(一)

设计模式是软件开发中的一种经验总结,它提供了可复用的解决方案来解决常见的软件设计问题。在软件开发领域,设计模式已经成为了一种非常重要的概念。

以下是23种常见的设计模式,按照创建型、行为型和结构性进行分类:
创建型模式5种(Creational Patterns):
单例模式(Singleton Pattern)
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
2.结构性模式7种(Structural Patterns):
适配器模式(Adapter Pattern)
桥接模式(Bridge Pattern)
组合模式(Composite Pattern)
装饰器模式(Decorator Pattern)
享元模式(Flyweight Pattern)
代理模式(Proxy Pattern)
装饰器模式(Decorator Pattern)
3.行为型模式11种(Behavioral Patterns):
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)
解释器模式(Interpreter Pattern)
迭代器模式(Iterator Pattern)
中介者模式(Mediator Pattern)
备忘录模式(Memento Pattern)
观察者模式(Observer Pattern)
外观模式(Facade Pattern)
状态模式(State Pattern)
策略模式(Strategy Pattern)
模板方法模式(Template Method Pattern)
访问者模式(Visitor Pattern)
以下是各个模式的意图:
单例模式(Singleton Pattern):确保一个类只有一个实例,并提供全局访问点。
工厂模式(Factory Pattern):使用工厂方法代替new操作符来创建对象。
抽象工厂模式(Abstract Factory Pattern):提供一个接口,用于创建相关或依赖对象族,而不需要指定具体类。
建造者模式(Builder Pattern):将一个复杂对象的构建与其表示相分离,以使同样的构建过程可以创建不同的表示。
原型模式(Prototype Pattern):通过复制现有对象来创建新对象。
适配器模式(Adapter Pattern):将一个类的接口转换成客户希望的另一个接口。
桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
过滤器模式(Filter Pattern):使用不同的标准来过滤一组对象。
组合模式(Composite Pattern):将对象组合成树形结构以表示“部分-整体”的层次结构。
装饰器模式(Decorator Pattern):动态地为对象添加额外的职责。
享元模式(Flyweight Pattern):共享内存以减少大量小对象的创建。
代理模式(Proxy Pattern):为其他对象提供一个代理以控制对这个对象的访问。
责任链模式(Chain of Responsibility Pattern):为解除请求的发送者和接收者之间耦合,将请求沿着处理者链传递。
外观模式(Facade Pattern):为子系统中的一组接口提供一个一致的界面。
命令模式(Command Pattern):将请求封装成对象,以便可以用不同的请求对客户进行参数化。
解释器模式(Interpreter Pattern):给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。
迭代器模式(Iterator Pattern):提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。
中介者模式(Mediator Pattern):用一个中介对象来封装一系列的对象交互。
备忘录模式(Memento Pattern):是一种行为型设计模式,其主要目的是允许将一个对象的状态保存到另一个对象中,以便在需要时恢复该状态。备忘录模式通过封装一个对象的内部状态,并提供一个接口来操作该状态,从而实现对该状态的存储和恢复。
访问者模式(Visitor Pattern)是一种行为型设计模式,其主要目的是允许在不改变已有类结构的情况下,动态地添加新的操作。
访问者模式的核心思想是将对象的结构中的元素作为操作的参数,并通过一个访问者接口来定义这些操作。这样,可以在运行时动态地添加新的操作,而不需要修改原有的代码。
模板方法模式(Template Method Pattern)是一种行为型设计模式,其主要目的是定义一个操作中的算法骨架,并将一些步骤延迟到子类中实现。
策略模式(Strategy Pattern)是一种行为型设计模式,其主要目的是定义一组算法,并将每个算法封装起来,使它们可以互相替换。
状态模式(State Pattern)是一种行为型设计模式,其主要目的是允许一个对象在其内部状态改变时改变它的行为。状态模式的核心思想是将对象的状态作为对象的一部分,并且根据不同的状态来决定对象的行为。在状态模式中,对象不再是一个简单的容器,而是一个复杂的行为机构,它可以根据不同的状态执行不同的操作。
