Java--设计模式-25-设计模式汇总

简介: 今天汇总下学过的设计模式。

今天汇总下学过的设计模式。

       每一个设计模式都是经过长时间的应用、优化、尝试出来的宝贵经验,慢慢的要做到不同的场景能想到不同的设计模式来解决。

设计模式有三个类型:

  • 创建型,提供了不通过new关键字来创建对象的更灵活的方式。
  • 结构性,根据不同的类对象组合来获取更多的功能。
  • 行为型,对类对象间提供了不同的通信功能。


一、结构型模式 8个

  1. 适配器模式(Adapter Pattern)
       将一个接口转换为客户端所期待的接口,从而使两个接口不兼容的类可以在一起工作
  2. 组合模式(Composite Pattern)
       组合模式允许以相同的方式处理单个对象和对象的组合体

  3. 装饰器模式(Decorator Pattern)
       装饰模式是在不必改变原类和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象

  4. 桥接(Bridge Pattern)
       桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。
  5. 外观模式(Facade Pattern)
        提供一个高层次的接口,使得子系统更易于使用

  6. 享元模式(Flyweight Pattern)
        允许使用对象共享来有效地支持大量细粒度对象.
  7. 代理模式(Proxy Pattern)
        为其他对象提供一种代理以控制对这个对象的访问.
  8. 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)
        使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。

二、创建型模式 5个

  1. 工厂模式(Factory Pattern)
  1. 工厂模式(Factory Pattern)
    定义一个用于创建对象的接口,让子类决定实例化哪个类
  2. 抽象工厂模式(Abstract Factory Pattern)
    抽象工厂为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定他们的具体类。
  1. 单例模式(Singleton Pattern)
       某个类只有一个实例,且自行实例化并向整个系统提供此实例。
  2. 建造者模式(Builder Pattern) 也叫构建者模式(Builder)
       将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建不同的表示
  3. 原型模式(Prototype Pattern)
        使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。

行为型模式 11个

  1. 观察者模式(Observer Pattern)
        定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
  2. 责任链模式(Chain of Responsibility Pattern)
        避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止
  3. 命令模式(Command Pattern)
        将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或记录日志,以及支持可撤销的操作。
  4. 策略模式(Strategy Pattern)
        定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。
  5. 迭代器模式(Iterator Pattern)
        提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。
  6. 中介者模式(Mediator Pattern)
        用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
  7. 备忘录模式(Memento Pattern)
        在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。
  8. 状态模式(State Pattern)
        允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。
  9. 模板模式(Template Pattern)
        在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中,使得子类可以在不改变一个算法的结构前提下即可重定义该算法的某些特定步骤
  10. 访问者模式(Visitor Pattern)
        封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于其内部各个元素的新操作。
  11. 解释器模式(Interpreter Pattern)
        提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。


END

目录
相关文章
|
12天前
|
设计模式 Java
【设计模式】JAVA Design Patterns——Bridge(桥接模式)
【设计模式】JAVA Design Patterns——Bridge(桥接模式)
【设计模式】JAVA Design Patterns——Bridge(桥接模式)
|
7天前
|
设计模式 Java 数据库连接
【重温设计模式】代理模式及其Java示例
【重温设计模式】代理模式及其Java示例
|
11天前
|
设计模式 Java API
【设计模式】JAVA Design Patterns——Combinator(功能模式)
【设计模式】JAVA Design Patterns——Combinator(功能模式)
|
12天前
|
设计模式 监控 Java
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
|
12天前
|
设计模式 Java 程序员
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
|
12天前
|
设计模式 算法 Java
【设计模式】JAVA Design Patterns——Builder(构造器模式)
【设计模式】JAVA Design Patterns——Builder(构造器模式)
|
12天前
|
设计模式 Java 容器
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
【设计模式】JAVA Design Patterns——Async Method Invocation(异步方法调用模式)
|
4天前
|
设计模式 存储 前端开发
Java的mvc设计模式在web开发中应用
Java的mvc设计模式在web开发中应用
|
7天前
|
设计模式 安全 Java
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
该文介绍了一种C++的编程技巧——奇异递归模板模式(CRTP),旨在让派生组件能继承基本组件的特定功能。通过示例展示了如何创建一个`Fighter`接口和`MmaFighter`类,其中`MmaFighter`及其子类如`MmaBantamweightFighter`和`MmaHeavyweightFighter`强制类型安全,确保相同重量级的拳手之间才能进行比赛。这种设计避免了不同重量级拳手间的错误匹配,编译时会报错。CRTP适用于处理类型冲突、参数化类方法和限制方法只对相同类型实例生效的情况。
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
|
9天前
|
设计模式 Java 数据库
【设计模式】JAVA Design Patterns——Converter(转换器模式)
转换器模式旨在实现不同类型间的双向转换,减少样板代码。它通过通用的Converter类和特定的转换器(如UserConverter)简化实例映射。Converter类包含两个Function对象,用于不同类型的转换,同时提供列表转换方法。当需要在逻辑上对应的类型间转换,或处理DTO、DO时,此模式尤为适用。
【设计模式】JAVA Design Patterns——Converter(转换器模式)