你可能喜欢
单项选择题
A.命令模式
B.代理模式
C.桥接模式
D.适配者模式
E.解释器模式
多项选择题
A.对客户屏蔽子系统组件,减少了客户处理的对象数目并使得子系统使用起来更加容易
B.通过引入外观模式,客户代码将变得很简单,与之关联的对象也很少
C.实现了子系统与客户之间的松耦合关系,这使得子系统的组件变化不会影响到调用它的客户类,只需要调整外观类即可
D.降低了大型软件系统中的编译依赖性,并简化了系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统
E.不能很好地限制客户使用子系统类
F.增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”
多项选择题
A.可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为
B.可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象
C.具体构件类与具体装饰类可以独立变化,用户可以根据需要增加新的具体构件类和具体装饰类,在使用时再对其进行组合,原有代码无须改变,符合“开闭原则”
D.使用装饰模式进行系统设计时将产生很多小对象
E.装饰模式比继承更加易于出错,排错也很困难,对于多次装饰的对象,调试时寻找错误可能需要逐级排查,较为烦琐
单项选择题
A.装饰某个对象时需要修改该类的对象
B.在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责
C.需要动态地给一个对象增加功能,这些功能也可以动态地被撤销
D.当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时
E.只需要对某个对象进行外观修饰而不需要修改其内在属性时