问题
单项选择题
某银行系统采用Factory Method方法描述其不同账户之间的关系,设计出的类图如图所示。其中与Factory Method中的“Creator”角色相对应的类是(1);与“Product”角色相对应的类是(2)。
(1)是()
A.Bank
B.Account
C.Checking
D.Savings
答案
参考答案:A
解析:
Factory Method(工厂方法)模式又称为虚拟构造器(virtual constructor)模式或多态模式,属于类的创建型模式。在工厂方法模式中,父类负责定义创建对象的公共接口,而子类则负责生成具体的对象,这样做的目的是将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类。工厂方法模式的意图是,定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method是一个类的实例化延迟到其子类。工厂方法模式的类图如图所示。
其中:
①类Product定义了Factory Method所创建的对象的接口;
②类ConcreteProduct用于实现Product接口;
③类Creator声明了工厂方法,该方法返回一个Product类型的对象。Creator也可以定义一个工厂方法的默认实现,它返回一个默认的ConcreteProduct对象。
④类ConcreteCreator重定义了工厂方法,以返回一个ConcreteProduct实例。
对照两张类图可以看出,与“Creator”角色相对应的类是Bank;与“Product”角色相对应的类是Accout。