软件设计过程中有哪些设计模式?试举例说明其作用
时间: 2025-07-09 09:40:40 浏览: 3
<think>嗯,用户问的是软件设计过程中的设计模式,需要举例说明作用。首先,我得回忆一下常见的设计模式有哪些。设计模式通常分为创建型、结构型和行为型三类。
创建型模式,比如单例模式,工厂模式,建造者模式。单例确保一个类只有一个实例,工厂负责创建对象,建造者用于构造复杂对象。比如用户需要全局配置对象,用单例就很合适。
结构型模式,像适配器、代理、装饰器。适配器解决接口不兼容的问题,比如旧的日志接口需要适配新系统。代理模式控制访问,比如远程服务代理或者延迟加载图片。
行为型模式,比如观察者、策略、模板方法。观察者用于事件处理,比如用户界面中的按钮点击事件。策略模式让算法可以互换,比如不同的支付方式。
用户可能想知道这些模式如何实际应用,所以例子要具体。例如,工厂方法在需要根据不同条件创建不同对象时使用,比如数据库连接工厂根据配置返回MySQL或Oracle连接。
要确保回答结构清晰,分点说明每类模式,再举例子。还要注意用中文,LaTeX公式正确,但这里可能用不上数学表达式,所以主要关注设计模式的解释和例子。检查有没有遗漏重要的模式,比如装饰器、责任链等,但用户可能不需要全部列举,重点介绍几个常用的即可。</think>在软件设计中,设计模式是针对常见问题的可复用解决方案。以下是三类经典设计模式及典型示例:
---
### 一、**创建型模式**
**目标**:控制对象的创建逻辑,提升灵活性与复用性。
1. **单例模式**
- **作用**:确保一个类仅有一个实例,并提供全局访问点。
- **示例**:数据库连接池、全局配置管理器。
- **代码示意**:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {} // 私有构造函数
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
2. **工厂方法模式**
- **作用**:将对象创建委托给子类,实现接口与实现的解耦。
- **示例**:日志系统中,根据配置选择文件日志或控制台日志。
---
### 二、**结构型模式**
**目标**:通过组合类或对象形成更复杂的结构。
1. **适配器模式**
- **作用**:解决接口不兼容问题。
- **示例**:将旧版第三方支付接口封装成符合当前系统标准的新接口。
- **代码示意**:
```java
class LegacyPayment { void pay(int amount) { ... } }
interface NewPayment { void processPayment(double money); }
class PaymentAdapter implements NewPayment {
private LegacyPayment legacy = new LegacyPayment();
public void processPayment(double money) {
legacy.pay((int) (money * 100)); // 转换金额单位
}
}
```
2. **装饰器模式**
- **作用**:动态扩展对象功能,避免继承导致的类爆炸。
- **示例**:为文本输入流添加压缩或加密功能。
---
### 三、**行为型模式**
**目标**:优化对象间的通信与职责分配。
1. **观察者模式**
- **作用**:定义对象间的一对多依赖,当对象状态变化时自动通知依赖方。
- **示例**:GUI事件处理(如按钮点击触发多个回调)。
- **代码示意**:
```java
interface Observer { void update(String event); }
class Button {
private List<Observer> observers = new ArrayList<>();
public void addObserver(Observer o) { observers.add(o); }
public void click() {
for (Observer o : observers) {
o.update("Button clicked");
}
}
}
```
2. **策略模式**
- **作用**:封装算法族,使其可独立替换。
- **示例**:电商系统中支持多种促销策略(满减、折扣、赠品)。
---
### 四、**总结**
设计模式的核心价值在于:
1. **降低耦合**:通过接口隔离变化,例如工厂模式隐藏具体类。
2. **提升复用性**:如适配器模式复用旧代码。
3. **增强扩展性**:如装饰器模式动态叠加功能。
实际应用中需结合场景选择模式,避免过度设计。
阅读全文
相关推荐


















