单选题
用于增加对象功能的设计模式是______;用于限制对象访问的设计模式是______。
单选题
- A.Adapter
- B.Decorator
- C.Delegation
- D.Proxy
单选题
- A.Adapter
- B.Decorator
- C.Delegation
- D.Proxy
【正确答案】
D
【答案解析】[解析] 本题考查常见设计模式的功能,备选答案中除了Delegation,其他均为经典设计模式。
适配器(adapter)模式。适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在类适配器模式中,通过使用一个具体类将适配者适配到目标接口中;在对象适配器模式中,一个适配器可以将多个不同的适配者适配到同一个目标。
装饰(decorator)模式。装饰模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。通过装饰模式,可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;当需要动态地给一个对象增加功能,这些功能可以再动态地被撤销时可使用装饰模式;当不能采用生成子类的方法进行扩充时也可使用装饰模式。
代理(proxy)模式。代理模式是一种对象结构型模式,可为某个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式能够协调调用者和被调用者,能够在一定程度上降低系统的耦合度,其缺点是请求的处理速度会变慢,并且实现代理模式需要额外的工作。
单选题
以下关于依赖倒置原则的叙述中,正确的是______。
- A.要针对实现编程,而不是针对接口编程
- B.在程序中尽量使用具体类进行编程,而少使用抽象层类
- C.在程序代码中传递参数时或在组合关系中,尽量引用层次高的抽象层类
- D.软件实体应对扩展开放而对修改关闭
【正确答案】
C
【答案解析】[解析] 依赖倒置原则强调:要针对接口编程,而不是针对实现编程;在程序中尽量使用抽象层类进行编程,而少使用具体类。所以选项A与B不正确。选项D描述本身无误,但对应的原则是开闭原则,与依赖倒置原则无关,也不正确。