阅读下列说明Java代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。 【说明】 现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQIL Server和Access两种数据库以及系统中的数

admin2013-07-09  31

问题 阅读下列说明Java代码,将应填入(1)~(6)处的字句写在答题纸的对应栏内。
    【说明】
    现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以SQIL Server和Access两种数据库以及系统中的数据库表Department为例,其类图如图6—1所示。
   
[Java代码】
import java.util.*:
class Department{/*代码省略*/)
interface IDepartment{
   (1)   
   (2)   
      }
    class SqlserverDepartment:   (3)   {
    public:
        voidInsert(Department department){
            System.out.println(“Insert a record into Department in SOL Server!\n”);
            //其余代码省略
        }
        public Department GetDepartment(int id){
            //代码雀略
        }
    }
    class AccessDepartment:   (4)   {
    public voidInsert(Department department){
        System.out.println(“Insert a record into Department in ACCESS! \n”);
        //其余代码省略
    }
    public Department GetDepartment(int id){
        //代码省略
        }
    };
       (5)   {
           (6)   
    }
    class sqlserverFactory implements IFactory{
        public IDepartment CreateDepartment()(
            return new Sql serverDepartment();
        }
        //其余代码省略
    };
    class AccessFactory implements IFactory{
        public IDepartment createDepartment(){
            return new AccessDepartment();
        }
        //其余代码省略
    };

选项

答案(1)void Insert(Department department) (2)Department GetDepartment(int id) (3)implements IDepartment (4)implements IDepartment (5)interface Ifactory (6)IDepartment CreateDepartment()

解析 本题考查抽象工厂设计模式的概念及其应用。
    抽象工厂设计模式的意图是:提供一个创建一系列相
关或相互依赖的对象,而无须指出它们具体的类。在如下情况下应当考虑使用抽象工厂模式:
    .当一个系统要独立于它的产品的创建、组合和表示时;
    .当一个系统要由多个产品系列中的一个来配置时;
    .当需强调一系列相关的产品对象的设计以便进行联合使用时;
    .想提供一组对象而不显示它们的实现过程,只显示
它们的接口时。抽象工厂设计模式的类图如图6—2所示,其中:
    .AbstractFactory为抽象工厂,声明抽象产晶的方法。
    .ConcreteFactory为具体工厂,执行生成抽象产品的方法,生成一个具体的产品。
    .AbstractProduct为抽象产品,为一种产品声明接口。
    .Product为具体产品,定义具体工厂生成的具体产品的对象,实现产品接口。
   
    图6-1中的Ifactory对应类图中的AbstractFactory、Sqlserverfactory和Accessfactory对应类图中的ConcreteFactory、SqlserverDepartment和AccessDepartment对应类图中的Prod-uct,而IDepartment对应类图中的AbstractProduct。
    (1)和(2)考查接口IDepartment中方法的定义。由其子类SqlserverDepartment和AccessDepartment中方法的定义,可知(1)处应填入void Insert(Department department),(2)处应填入Department GetDepartment(int id)。
    (3)和(4)考查接口IDepartment的实现。接口的实现是在一个类的声明中使用关键字“implements”来表示该类使用某个已经定义的接口,然后即可在该类体中使用接口中定义的常量,而且必须实现接口中定义的所有方法。因此,(3)和(4)都应填入implements IDepartment。
    由于所给程序中缺少接口Ifactory的定义,因此(5)处应为定义接口Ifactory,应填入interface Ifactory。由于类Sqlserverfactory和Aceessfaetory中必须实现接口Ifaetory中定义的所有方法,观察这两个类中的方法可知,(6)处应填入IDepartment CreateDepartment()。
转载请注明原文地址:https://jikaoti.com/ti/aji7FFFM
0

相关试题推荐
最新回复(0)