后端经典面试题合集, 设计模式可以分为哪几类?一共有多少种主流的设计模式?
后端经典面试题合集, 设计模式可以分为哪几类?一共有多少种主流的设计模式?
QA
Step 1
Q:: 设计模式可以分为哪几类?
A:: 设计模式可以分为三大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)和行为型模式(Behavioral Patterns)。创建型模式主要关注对象的创建过程,结构型模式主要处理对象或类的组合,行为型模式则侧重对象之间的交互和职责的分配。
Step 2
Q:: 一共有多少种主流的设计模式?
A:: 经典的设计模式有23种,它们被归纳在《设计模式:可复用面向对象软件的基础》一书中。这23
种模式包括:工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式、适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式、责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。
Step 3
Q:: 单例模式是什么?它有哪些应用场景?
A:: 单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。单例模式在需要控制资源的唯一访问点时非常有用,比如配置类、日志类、数据库连接池、线程池等。
Step 4
Q:: 工厂模式与抽象工厂模式有什么区别?
A:: 工厂模式(Factory Method)定义了一个创建对象的接口,但由子类决定实例化哪一个类。抽象工厂模式(Abstract Factory)提供一个接口,用于创建相关或依赖对象的家族,而无需明确指定具体类。简单来说,工厂模式关注单一产品的创建,而抽象工厂模式则关注产品家族的创建。
Step 5
Q:: 什么是策略模式?它的优势是什么?
A:: 策略模式是一种行为型设计模式,它定义了一系列算法,将每个算法封装起来,并使它们可以相互替换。策略模式让算法可以独立于使用它的客户端而变化。其优势包括:1) 提高了代码的灵活性,2) 避免了使用条件语句来选择算法,3)
符合开闭原则,可以方便地增加新的算法。