设计模式面试题, 23 种设计模式分为哪三大类?
设计模式面试题, 23 种设计模式分为哪三大类?
QA
Step 1
Q:: 设计模式是什么?
A:: 设计模式是一套被反复使用的、经过分类编目的、代码设计经验的总结。使用设计模式是为了让代码结构更加清晰、可维护、可扩展。设计模式是软件开发中用于解决常见问题的模板。
Step 2
Q:: 23
种设计模式分为哪三大类?
A:: 23
种经典的设计模式分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)。其中,创建型模式包括单例模式、工厂方法模式、抽象工厂模式、生成器模式和原型模式;结构型模式包括适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式和享元模式;行为型模式包括策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式和解释器模式。
Step 3
Q:: 单例模式是什么?在什么场景下使用?
A:: 单例模式是一种创建型模式,确保一个类只有一个实例,并提供全局访问点。适用于需要一个全局唯一的对象,如线程池、数据库连接池等。
Step 4
Q:: 工厂模式和抽象工厂模式有什么区别?
A:: 工厂模式是用于创建一个产品对象的实例,客户端通过工厂方法获取对象,而不需要知道具体的实现类。抽象工厂模式则是用于创建一系列相关或依赖的对象。抽象工厂提供了一组创建对象的接口,但具体的实现交由子类决定。
Step 5
Q:: 策略模式如何实现,什么时候使用?
A:: 策略模式属于行为型模式,允许定义一系列算法,并使得这些算法可以互换。通过封装算法,策略模式可以让算法的变化独立于使用它们的客户端。适用于算法需要在运行时动态改变的场景,例如不同的排序算法选择。
Step 6
Q:: 观察者模式的应用场景是什么?
A:: 观察者模式用于定义对象间的一对多依赖关系,一个对象状态的改变会通知所有依赖它的对象。常见的应用场景包括事件驱动的系统(如GUI应用中的事件监听)、消息订阅系统等。