问题
单项选择题
若某面向对象系统中的某子模块需要为其他模块提供访问不同数据库系统(Oracle、SOL Server、DB2 UDB等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询。()设计模式可抽象出相同的数据库访问过程。
A.外观(Facade)
B.装饰(Decorate)
C.单例(Singleton)
D.模板方法(Template Method)
答案
参考答案:D
解析:
本试题4个选项所给出的4种设计模式的作用如下。
外观(Facade):为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用。
装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能。
单例(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。
模板方法(Template Method):在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。
本试题所给出的场景描述了对数据库进行操作的步骤是相同的。但是,具体的每个步骤根据不同的数据库系统会存在一定差异,例如数据库提供的接口函数不同,模板方法(Template Method)正是将步骤过程抽象出来,而每个具体操作步骡的差异留到具体的子类去实现。