《设计模式之美》 学习笔记 day3

92 阅读2分钟

大家好,我是砸锅。一个摸鱼八年的后端开发。熟悉 Go、Lua。今天和大家一起学习设计模式😊

工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但让子类决定实例化哪个类。这种模式使得子类可以无需知道具体实例化哪个类,而是由工厂类决定如何创建对象。

工厂方法模式由以下组件组成:

  1. 工厂接口 (Factory Interface):声明工厂方法 (createProduct),用于创建产品对象。
  2. 具体工厂类 (Concrete Factory Class):实现工厂接口,重写基础工厂方法 (createProduct),以创建不同类型的产品对象。
  3. 产品接口 (Product Interface):声明产品方法 (doSomething),用于实现产品的功能。
  4. 具体产品类 (Concrete Product Class):实现产品接口,实现产品方法 (doSomething)。

工厂方法模式的主要使用场景包括:

  1. 无法预知对象的具体类型以及依赖关系。在这种情况下,使用工厂方法模式可以将实例化操作推迟到一个或者多个具体子类中,从而避免在运行时动态创建对象。
  2. 希望可以扩展软件库或者框架的内部组件。通过使用工厂方法模式,可以在不需要修改原始库或框架的情况下,动态创建相关的对象。
  3. 一个类需要通过子类指定其创建的对象。在这种情况下,可以使用工厂方法模式,使得子类可以只需要关注如何创建对象,而不需要关注具体创建的对象类型。

在工厂方法模式中,工厂接口和产品接口是两个重要的概念。工厂接口定义了创建对象的方法,而产品接口定义了产品对象的方法。这两个接口之间是相互依赖的,产品接口需要依赖工厂接口,以便能够创建对象。

具体工厂类和具体产品类之间的关系是依赖关系。具体工厂类需要依赖具体产品类的实现,以便能够创建产品对象。这种依赖关系可以在工厂方法模式中得到解决,使得具体工厂类可以动态创建具体产品类的对象。

总之,工厂方法模式是一种非常有用的设计模式,它允许子类决定实例化哪个类,从而使得对象创建过程更加灵活。它可以使用在需要创建大量相关对象的场景下,以便实现更加灵活的创建方式。

此文章为4月Day8学习笔记,内容来源于极客时间《设计模式之美》 这门课真的非常好,推荐大家看看