题目
你觉得设计模式有什么作用?
解释
类似问题如 “为什么要用设计模式”
答案
1. **代码复用与解耦**:设计模式通过**模块化设计**将变化的部分与稳定的部分隔离,例如:
- **工厂模式**:将对象创建逻辑封装,调用方无需关心具体实现
- **策略模式**:通过接口抽象算法实现,动态替换业务逻辑,示例代码如下:
```java
// 策略模式示例:支付方式切换
interface PaymentStrategy {
void pay(int amount);
}
class CreditCardPayment implements PaymentStrategy { /*...*/ }
class AlipayPayment implements PaymentStrategy { /*...*/ }
class PaymentProcessor {
private PaymentStrategy strategy;
public void setStrategy(PaymentStrategy strategy) { this.strategy = strategy; }
public void executePayment(int amount) { strategy.pay(amount); }
}
```
2. **提升可维护性**:遵循**开闭原则**(对扩展开放,对修改关闭),例如:
- **装饰器模式**:动态扩展对象功能,无需修改原有代码
- **观察者模式**:事件驱动机制让系统各部分松耦合
3. **统一沟通语言**:设计模式提供了一套**标准术语**,比如文档里面写 “适配器模式” 团队其他小伙伴能够立即理解核心是 adptaer 适配不同接口
4. **规避常见陷阱**:模式背后是**最佳实践的总结**,例如:
- **单例模式**:确保全局唯一访问点,避免资源浪费
- **代理模式**:控制对象访问,实现延迟加载或权限校验
5. **提升代码审美**:良好应用模式的代码具有**自解释性**
