主题
面试速答(先看这里)
**一句话结论:**工厂模式(Factory) :通过一个工厂类来负责创建对象,将对象的创建和使用分离,可以避免在代码中重复写对象创建的代码。
60秒标准回答:
工厂模式(Factory) :通过一个工厂类来负责创建对象,将对象的创建和使用分离,可以避免在代码中重复写对象创建的代码
模板方法模式(Template Method) :通过模板方法,将一些通用的逻辑抽象出来放到父类中,各个子类继承父类并复用这些公共的方法
装饰器模式(Decorator) :动态地给一个对象添加一些额外的职责,可以避免在代码中重复编写相似的功能
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
**记忆锚点:**模板方法模式(Template Method) → 装饰器模式(Decorator) → 享元模式(Flyweight) → 单例模式(Singleton) → 适配器模式(Adapter) → 工厂模式(Factory)
易错提醒:
- 工厂模式(Factory) :通过一个工厂类来负责创建对象,将对象的创建和使用分离,可以避免在代码中重复写对象创建的代码。
- 装饰器模式(Decorator) :动态地给一个对象添加一些额外的职责,可以避免在代码中重复编写相似的功能。
追问准备:
- 围绕「模板方法模式(Template Method)」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「装饰器模式(Decorator)」:底层原理是什么?使用时有哪些边界和常见坑?
- 围绕「享元模式(Flyweight)」:底层原理是什么?使用时有哪些边界和常见坑?
- 如果线上出现异常,你会如何定位、验证并规避?
典型回答
工厂模式(Factory):通过一个工厂类来负责创建对象,将对象的创建和使用分离,可以避免在代码中重复写对象创建的代码。
模板方法模式(Template Method):通过模板方法,将一些通用的逻辑抽象出来放到父类中,各个子类继承父类并复用这些公共的方法。
装饰器模式(Decorator):动态地给一个对象添加一些额外的职责,可以避免在代码中重复编写相似的功能。
享元模式(Flyweight):将一个对象的状态分成内部状态和外部状态,多个具有相同内部状态的对象可以共享外部状态,可以避免在代码中重复创建具有相同内部状态的对象。
适配器模式(Adapter):将一个类的接口转换成客户端希望的另一个接口,可以使得原本不兼容的类可以协同工作。
单例模式(Singleton):确保一个类只有一个实例,并提供一个全局访问点。这种模式可以保证对象的唯一性,并方便对象的管理和控制以及复用。