August 2021
Intermediate to advanced
450 pages
4h 46m
Chinese
创建型模式包含以下模式:
·抽象工厂模式
·构造器模式
·工厂方法模式
·原型模式
·单例模式
之前已经说过,本章节主要讲述什么是设计模式,而不是详细描述GoF书中的每个模式。因此,每个类别中的模式我们只会讲解一个。在创建型模式中我们选择工厂模式的一个例子进行讲述。
工厂方法模式
创建或实例化对象很可能是面向对象编程中最基本的概念之一。你无法使用一个对象,除非它已经被创建。编写代码时,最显而易见的实例化对象的方法是使用new关键字。
为了说明问题,让我们重新阅读本书中使用的Shape类示例。在这里,我们有熟悉的父类Shape(抽象类)和子类Circle(具体类)。我们通过使用new关键字以常规方式实例化Circle类:
尽管上述代码确实有效,但是你的代码中可能还有许多其他地方需要实例化一个Circle类或任何其他Shape类。在许多情况下,每次创建Shape对象时,你都需要处理特定的对象创建参数。
因此,任何时候更改对象的创建方式时,你都必须在实例化Shape对象的每个位置都更改相应的代码。这样的代码高度耦合:因为一个位置的代码更改,会带来潜在的许多其他位置的代码更改。这种方法的另一个问题是,它将对象创建逻辑公开给使用类的程序员。
为了解决这些情况,我们可以实现工厂方法。简而言之,工厂方法负责封装所有类的实例化工作,以便统一整个实现。你使用工厂来实例化类,并且工厂负责正确地实例化类。
工厂方法模式
工厂方法模式的基本意图是创建对象而不必指定确切的类,实际上是使用接口创建新类型的对象。 ...