2 / 10

下面给出了四种设计模式的作用:
  外观(Facade):为子系统中的一组功能调用提供一个一致的接口,这个接口使得这一子系统更加容易使用;
  装饰(Decorate):当不能采用生成子类的方法进行扩充时,动态地给一个对象添加一些额外的功能;
  单件(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点;
  模板方法(Template  Method) :在方法中定义算法的框架,而将算法中的一些操作步骤延迟到子类中实现。
  请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用()设计模式能够有效达到该目的;该系统中的某子模块需要为其它模块提供访问不同数据库系统(Oracle、SQL Server、DB2 UDB 等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,()设计模式可抽象出相同的数据库访问过程;系统中的文本显示类(TextView)和图片显示类(PictureView)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,()设计模式可以实现该目的。