创建型模式详解:原型模式、工厂方法模式和单例模式
1. 创建型模式简介
创建型模式旨在将系统与其对象的创建、组合和表示方式分离。它们提高了系统在对象创建的what、who、how和when方面的灵活性。创建型模式封装了系统使用的类的知识,但隐藏了这些类实例的创建和组合细节。程序员已经意识到,使用继承来构建系统会使这些系统过于僵化。创建型模式旨在打破这种紧密耦合。在本章中,我们将探讨三种创建型模式:原型模式、工厂方法模式和单例模式。
2. 原型模式(Prototype Pattern)
2.1 角色
原型模式通过克隆存储的几个原型对象来创建新对象。原型模式有两个优点:它加快了非常大的、动态加载的类的实例化速度(当复制对象更快时),并且它记录了大型数据结构中可识别的部分,这些部分可以在不知道它们创建自哪个子类的情况下被复制。
2.2 插图
让我们再次考虑第三章中的照片组应用程序,该应用程序持有一组照片。我们可以添加存档功能,通过复制一个相册中的照片组到另一个相册来实现归档。归档成为持有原型的容器,这些原型可以在需要时被复制。我们将更新后的应用程序称为“照片档案”。
2.3 设计
原型模式通过现有原型创建对象,而不是直接从类实例化。UML图展示了原型模式的关键组件: