关于模式适用性,以下哪种情况不适合使用装饰者模式?()
A: 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
B: 处理那些可以撤销的职责
C: 客户程序与抽象类的实现部分之间存在着很大的依赖性
D: 当不能采用生成子类的方法进行扩充时,一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类使得子类数目爆炸性增长;另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类
A: 在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
B: 处理那些可以撤销的职责
C: 客户程序与抽象类的实现部分之间存在着很大的依赖性
D: 当不能采用生成子类的方法进行扩充时,一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类使得子类数目爆炸性增长;另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类
举一反三
- 关于模式适用性,在以下情况不适合使用Bridge(桥接)模式?() A: 你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换 B: 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充 C: 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 D: 客户程序与抽象类的实现部分之间存在着很大的依赖性
- 关于模式适用性,在以下情况不适合使用Bridge(桥接)模式?() A: 你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可能是因为,在程序运行时刻实现部分应可以被选择或者切换 B: 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这时Bridge模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充 C: 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编译 D: 客户程序与抽象类的实现部分之间存在着很大的依赖性
- 用abstract定义的类( ) 。 A: 可以定义对象 B: 只能包含抽象方法 C: 可以被子类继承 D: 不能被子类继承
- 以下关于抽象类和抽象方法的说法中错误的是( )。 A: 抽象类的子类必须实现父类中的所有抽象方法,如果不实现该抽象方法,则必须将该子类也声明成抽象类。 B: 由于抽象类是需要被继承的,所以abstract类不能用final来修饰,即一个类不能既是最终类,又是抽象类 C: 不能直接由抽象类创建对象,只能通过抽象类派生出新的子类,再由其子类来创建对象。 D: 抽象类中一定包含抽象方法,包含抽象方法的类一定要声明为抽象类。
- 子类和父类对象在进行类型转换时,子类对象可以被视为父类的一个对象,父类对象不能被当作是某一个子类的对象。