关于模式适用性,在以下情况可以使用builder模式?()
A、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
B、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
C、当构造过程必须允许被构造的对象有不同的表示时
D、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为
A、当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
B、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
C、当构造过程必须允许被构造的对象有不同的表示时
D、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为
A、你想使用一个已经存在的类,而它的接口不符合你的需求 B、根据需要创建开销很大的对象 C、在需要用比较通用和复杂的对象指针代替简单的指针的时候 D、取代了简单的指针,它在访问对象时执行一些附加操作
A、你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换 B、类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充 C、对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 D、客户程序与抽象类的实现部分之间存在着很大的依赖性
A、你想使用一个已经存在的类,而它的接口不符合你的需求 B、你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作 C、你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口 D、如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象
A、你想使用一个已经存在的类,而它的接口不符合你的需求 B、你想表示对象的部分-整体层次结构 C、当一个类的实例只能有几个不同状态组合中的一种时 D、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为
A、在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责 B、处理那些可以撤消的职责 C、客户程序与抽象类的实现部分之间存在着很大的依赖性 D、当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类
A、抽象出待执行的动作以参数化某对象,使用过程语言中的回调(callback)函数表达这种参数化机制 B、Java语言中的:AWT的事件处理 C、在需要用比较通用和复杂的对象指针代替简单的指针的时候 D、一个系统需要支持交易(transaction),一个交易结构封装了一组数据更新命令
A、当要实例化的类是在运行时刻指定时,例如,通过动态装载 B、当你要强调一系列相关的产品对象的设计以便进行联合使用时 C、为了避免创建一个与产品类层次平行的工厂类层次时 D、当一个类的实例只能有几个不同状态组合中的一种时