极客技术博客
Toggle Menu
主页
在线C语言编译器
教程
Java 教程
Linux 教程
Python 算法教程
博客
博客列表
Design Patterns
聚焦于软件设计中常见问题的可复用解决方案 包括单例 工厂 观察者 策略 适配器等模式
1. 哪个设计模式确保一个类只有一个实例,并提供一个全局访问点?
单例模式(Singleton)
工厂模式(Factory)
观察者模式(Observer)
适配器模式(Adapter)
2. 以下哪些属于创建型设计模式?(选择所有适用项)
单例模式(Singleton)
工厂方法模式(Factory Method)
观察者模式(Observer)
建造者模式(Builder)
3. 观察者模式(Observer Pattern)定义了对象之间的一对多依赖关系,当一个对象状态改变时,所有依赖它的对象都会收到通知并自动更新。
True
False
4. 哪种设计模式用于将一个类的接口转换成客户端期望的另一个接口,从而使原本因接口不兼容而无法一起工作的类能够协同工作?(填写模式名称)
5. 工厂方法模式(Factory Method)的主要作用是?
定义一个创建对象的接口,但由子类决定实例化哪个类
动态地给一个对象添加一些额外的职责
允许对象在不了解创建细节的情况下创建一系列相关对象
封装对象的创建过程,隐藏具体实现
6. 以下属于行为型设计模式的有哪些?(选择所有适用项)
策略模式(Strategy)
装饰器模式(Decorator)
命令模式(Command)
迭代器模式(Iterator)
7. 单例模式(Singleton)是一种行为型设计模式。
True
False
8. 哪个设计模式允许在不修改原有对象结构的情况下,动态地给对象添加新的行为或职责?(填写模式名称)
9. 在电商系统中,若需要根据不同用户等级(普通用户、VIP用户、SVIP用户)应用不同的折扣算法,最适合使用哪种设计模式?
策略模式(Strategy)
模板方法模式(Template Method)
状态模式(State)
代理模式(Proxy)
10. 以下哪些是结构型设计模式?(选择所有适用项)
适配器模式(Adapter)
组合模式(Composite)
观察者模式(Observer)
代理模式(Proxy)
11. 装饰器模式(Decorator)相比继承,更灵活地实现了功能扩展,因为它可以动态添加或移除职责。
True
False
12. 创建型设计模式中,哪种模式的核心是定义一个创建对象的接口,让子类决定实例化哪个类?(填写模式名称,全称)
13. 当需要为一个对象提供一个‘替身’或占位符,以控制对它的访问(例如延迟加载、权限控制)时,应使用哪种设计模式?
代理模式(Proxy)
装饰器模式(Decorator)
适配器模式(Adapter)
外观模式(Facade)
14. 观察者模式(Observer Pattern)通常包含哪些核心角色?(选择所有适用项)
主题(Subject)
观察者(Observer)
具体主题(Concrete Subject)
具体观察者(Concrete Observer)
15. 建造者模式(Builder Pattern)主要用于创建复杂对象,将对象的构建过程和表示分离,使得同样的构建过程可以创建不同的表示。
True
False
16. 哪种设计模式为子系统中的一组接口提供一个统一的高层接口,简化对子系统的使用?(填写模式名称,可填别名)
17. 命令模式(Command Pattern)将请求封装成对象,从而可以用不同的请求对客户进行参数化,这一特性主要支持哪种功能?
支持撤销(Undo)操作
实现对象间的低耦合
动态添加对象职责
控制对象创建数量
18. 策略模式(Strategy)和状态模式(State)的相似之处包括?(选择所有适用项)
都使用组合而非继承来实现行为变化
都定义了一系列可互换的算法/行为
都允许动态改变对象的行为
状态模式中的行为变化由对象内部状态驱动,策略模式由客户端选择
19. 装饰器模式(Decorator)和代理模式(Proxy)的主要区别在于:装饰器主要用于添加功能,而代理主要用于控制访问。
True
False
20. 模板方法模式(Template Method)中,由父类定义的、包含算法骨架且子类可以重写部分步骤的方法被称为什么?(填写术语)
Reset
Answered 0 of 0 — 0 correct