设计模式

cccs7 Lv5

设计模式

参考 <图解设计模式>、<重学Java设计模式>


设计模式遵循六大原则;

  • 单一职责原则 : 一个类和方法只做一个事情
  • 里式替换:多态,子类可扩展父类
  • 开闭原则:抽象架构,拓展实现(对修改关闭,对扩展开放) 继承父类扩展需要的方法,同时保留原有的方法,新增自己需要的方法
  • 依赖倒置原则
    • 实现开闭原则的重要途径之一,它降低了客户与实现模块之间的耦合
    • 细节依赖抽象,下层依赖上层
  • 迪米特法原则
    • 最少知道,降低耦合
  • 接口隔离原则
    • 建立单一接口,尽量将庞大的接口拆分成更小 & 更具体的接口

创建型

这类模式提供创建对象的机制,能够提升已有代码的灵活性和可复用性


工厂方法 (Factory Method)


定义一个用于创建产品的接口,由子类决定生产什么产品

工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法,允许子类决定实例化对象的类型

这种设计模式也是 Java 开发中最常见的一种模式,它的主要意图是定义一个 创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到 子类进行

简单来说,就是为了 提供代码结构的扩展性,屏蔽每一个功能类中的具体实现逻辑。让外部可以更加简单的只是知道调用即可,同时,这也是去掉众多 if-else 的方法。当然,这也可能存在一些缺点,比如 需要实现的类非常多,如何去维护,如何去降低开发成本,但是以上问题都可以在后续设计模式的结合使用后,逐步降低。


业务场景

多种类型商品不同接口,统一发奖服务搭建场景

image-20230302205320156

角色

  • Product : 定义产品的接口,是工厂方法模式所创建的产品的父类
  • Concrete Product:具体产品
  • Factory :抽象工厂类中声明了工厂方法
  • Concrete Factory:具体的工厂方法,继承了抽象工厂类,用来生产具体的对象

抽象工厂(Abstract Factory)



建造者(Builder)



原型 (Prototype)



单例(Singleton)



  • Title: 设计模式
  • Author: cccs7
  • Created at: 2023-03-10 20:12:10
  • Updated at: 2023-06-29 23:12:01
  • Link: https://blog.cccs7.icu/2023/03/10/设计模式/
  • License: This work is licensed under CC BY-NC-SA 4.0.
 Comments