问答题 阅读下列说明和C++代码,将应填入______处的字句写在下面。
[说明]
现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQL Server和Access两种数据库以及系统中的数据库表Department为例,其类图如下图所示。
【正确答案】
【答案解析】virtual void Insert(Department*department)
virtual Department GetDepartment (int id)
public IDepartment
public IDepartment
class Ifactory
virtual IDepartment*CreateDepartment() [解析] 本题考查抽象工厂设计模式的概念及其应用。
抽象工厂设计模式的意图是:提供一个创建一系列相关或相互依赖的对象,而无须指出它们具体的类。在如下情况下应当考虑使用抽象工厂模式:
●当一个系统要独立于它的产品的创建、组合和表示时。
●当一个系统要由多个产品系列中的一个来配置时。
●当需强调一系列相关的产品对象的设计以便进行联合使用时。
●想提供一组对象而不显示它们的实现过程,只显示它们的接口时。
抽象工厂设计模式的类图如下图所示,其中:
●AbstractFactory为抽象工厂,声明抽象产品的方法。
●ConcreteFactory为具体工厂,执行生戍抽象产品的方法,生成一个具体的产品。
●AbstractProduct为抽象产品,为一种产品声明接口。
●Product为具体产品,定义具体工厂生成的具体产品的对象,实现产品接口。