试题(44)~(46) 每种设计模式都有特定的意图。____(44)____模式使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改了它的类。下图是采用该模式的有关TCP连接的结构图实例。该模式的核心思想是引入抽象类____(45)____来表示TCP连接的状态,声明不同操作状态的公共接口,其于类实现与特定状态相关的行为。当一个____(46)____对象收到其他对象的请求时,它根据自身的当前状态做出不同的反应。
(45)处填()。
A.TCPConnection
B.state
C.TCPState
D.TCPEstablished
参考答案:C
解析:
试题(44)~(46)分析 本题考查设计模式的基本知识。 每种设计模式都有特定的意图。适配器(Adapter)模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。命令(Command)模式将一个请求封装为一个对象,从而使使用者可以来用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。观察者(Visitor)模式表示一个作用于某对象结构中的各元素的操作,是使用者可以在不改变各元素的类的前提下定义作用于这些元素的新操作。状态(State)模式是使得一个对象在其内部状态改变时通过调用另一个类中的方法改变其行为,使这个对象看起来如同修改了它的类。 题目中是一个标识网络连接的实例,网络连接类为TCPConnection,其对象的状态处于不同状态之一:连接已建立(Established)、正在监听(Listening)、连接已关闭(Closed)。当一个TCPCoonection对象受到其他对象的请求时,它根据自身的当前状态作出不哦他能够的反应。例如,一个Open请求的结果依赖于该连接是出于连接己关闭状态还是连接己建立状态。State模式描述了TCPConnection如何做每一种状态下表现出不同的行为。这一模式思想是引入了一个称为TCPState的抽象类来表示网络的连接状态。TCPState类为各表示不同的操作状态的子类声明了一个公共接口。TCPState的子类实现与特定状态相关的行为。例如,TCPEstablished和TCPClosed类分别实现了特定于TCPConnection的连接己建立状态和连接已关闭状态的行为。