请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用(30)设计模式能够有效达到该目的:该系统中的某子模块需要为其他模块捉供访问不同数据库系统(如 Oracle、SQL Server和DB2 UDB等)的功能,这些数

admin2008-08-01  43

问题 请根据下面叙述的场景选用适当的设计模式。若某面向对象系统中的某些类有且只有一个实例,那么采用(30)设计模式能够有效达到该目的:该系统中的某子模块需要为其他模块捉供访问不同数据库系统(如 Oracle、SQL Server和DB2 UDB等)的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库、再打开数据库、最后对数据进行查询,(31)设计模式可抽象出相同的数据库访问过程;系统中的文本显示类(TextView)和图片显示类(Picture View)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,(32)计模式可以实现该目的。

选项 A、外观
B、装饰
C、单件
D、模板方法

答案B

解析 本题考查设计模式的基本应用。面向对象系统中的某些类有且只有一个实例,该场景的描述与单件模式的定义相同。系统中的某子模块需要为其他模块提供访问不同数据库系统(如 Oracle、SQL Server和DB2 UDB等),的功能,这些数据库系统提供的访问接口有一定的差异,但访问过程却都是相同的,例如,先连接数据库,再打开数据库,最后对数据进行查询,该场景描述了对数据库进行操作的步骤是相同的。但是,具体的每个步骤根据不同的数据库系统会存在一定差异,例如数据库提供的接口函数不同,模板方法正是将步骤过程抽象出来,而每个具体操作步骤的差异留到具体的子类去实现。系统中的文本显示类(TextView)和图片显示类(Picture View)都继承了组件类(Component),分别显示文本和图片内容,现需要构造带有滚动条、或者带有黑色边框、或者既有滚动条又有黑色边框的文本显示控件和图片显示控件,但希望最多只增加三个类,该场景限定了能够增加的类的数量。可以通过新增加三个类,分别继承组件类并实现给组件增加黑色边框、滚动条以及增加黑色边框和滚动条功能,因为文本显示类和图片显示类都属于组件类,因此,新增加的三个类能够给文本显示对象和图片显示对象增加额外的显示功能,该实现手段采用的就是装饰模式。
转载请注明原文地址:https://jikaoti.com/ti/yTB7FFFM
0

最新回复(0)