后端经典面试题合集, 设计模式可以分为哪几类?一共有多少种主流的设计模式?
后端经典面试题合集, 设计模式可以分为哪几类?一共有多少种主流的设计模式?
QA
Step 1
Q:: 设计模式可以分为哪几类?一共有多少种主流的设计模式?
A:: 设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。根据GoF(Gang of Four)经典书籍《设计模式:可复用面向对象软件的基础》, 一共有23种主流的设计模式。其中创建型模式有5种:单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式。结构型模式有7种:适配器模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、代理模式。行为型模式有11
种:职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式。
Step 2
Q:: 单例模式是什么?有几种实现方式?
A:: 单例模式是一种确保一个类只有一个实例,并且提供一个全局访问点的设计模式。常见的实现方式有三种:懒汉式、饿汉式和双重检查锁定(DCL, Double-
Checked Locking)。懒汉式是在第一次使用时才创建实例,饿汉式是在类加载时就创建实例,而双重检查锁定则结合了懒汉式的延迟加载和饿汉式的线程安全。
Step 3
Q:: 什么是工厂模式?它与抽象工厂模式有什么区别?
A:: 工厂模式是一种通过接口创建对象的设计模式,它将实例化过程推迟到子类中,客户端通过工厂类的接口来创建对象。抽象工厂模式是一种在工厂模式基础上扩展的模式,能够创建一系列相关或相互依赖的对象,而无需指定它们的具体类。工厂方法模式是针对一个产品等级结构,抽象工厂模式是针对多个产品等级结构。
Step 4
Q:: 适配器模式和装饰器模式有什么区别?
A:: 适配器模式是用于将一个类的接口转换成客户希望的另一个接口,使原本由于接口不兼容而无法一起工作的类能够协同工作。装饰器模式则是动态地将责任附加到对象上,提供了比继承更灵活的方式来扩展功能。两者的区别在于适配器模式侧重于接口的兼容性,装饰器模式侧重于功能的扩展。