13、设计模式:抽象工厂、原型与备忘录模式解析

抽象工厂、原型与备忘录模式解析

设计模式:抽象工厂、原型与备忘录模式解析

1. 抽象工厂模式概述

抽象工厂模式允许客户端创建属于相关或依赖对象家族的对象。经典应用场景包括 GUI 控件的外观和感觉家族,也就是“套件”。该模式的其他应用主题也可能存在,例如客户的居住国家。与工厂方法模式一样,抽象工厂模式将客户端与具体类的实例化隔离开来,为客户端提供一个能生产具有共同主题的相关对象的工厂。

2. 原型模式
2.1 原型模式简介

在开发类时,通常会为其提供构造函数以便客户端应用程序进行实例化。但在某些情况下,可能需要将类的用户与直接调用构造函数隔离开来。此前介绍的构建器、工厂方法和抽象工厂模式都能实现这种隔离,它们通过建立方法来代表客户端实例化合适的类。而原型模式同样对客户端隐藏对象的创建过程,但采用了不同的方法。它不是创建类的全新、未初始化的实例,而是通过复制一个示例来提供新对象。

2.2 以原型作为工厂

假设在某个场景中使用抽象工厂模式为不同上下文提供用户界面。随着用户对更多用户界面套件的需求增加,为每个设想的上下文创建新类变得繁琐。此时,可应用原型模式来解决这个问题,具体建议如下:
- 放弃 UI 的子类。
- 让每个 UI 实例成为一个用户界面工厂,通过分发原型控件的副本来工作。
- 将创建新 UI 对象的代码放在 UI 类的静态方法中。

这样,UI 对象将拥有一组完整的原型实例变量,如按钮、网格、分组框、填充面板等。创建新 UI 对象的代码会设置这些原型控件的值,以产生所需的外观和感觉。 Create-() 方法将返回这些原型控件的副本。例如,可在 UI 类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值