java开发中 常用的设计模式有哪些? 举例用在哪些场景下,并用代码举例说明
时间: 2024-09-29 13:13:40 浏览: 55
Java开发中常用的设计模式主要包括单例模式、工厂模式、观察者模式、适配器模式、策略模式、装饰者模式、责任链模式、命令模式、迭代器模式以及享元模式等。
1. **单例模式**:保证全局只有一个实例,常用于线程池、数据库连接池等资源管理场景。例如:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
2. **工厂模式**:创建对象的机制隐藏起来,提供一个创造对象的接口,由用户通过该接口获取需要的对象,常用于复杂产品的生成。如生产不同类型的汽车:
```java
interface CarFactory {
Car createCar(String type);
}
class BMWFactory implements CarFactory {
public Car createCar(String type) { ... }
}
class FactoryPatternDemo {
private CarFactory factory;
public void setFactory(CarFactory factory) {
this.factory = factory;
}
public void driveCar(String carType) {
Car car = factory.createCar(carType);
car.drive();
}
}
```
3. **观察者模式**:当主题发生变化时通知所有依赖它的观察者,典型应用在事件驱动编程。如股票价格变化通知订阅者:
```java
interface Observer {
void update(float price);
}
class StockPriceSubject {
private List<Observer> observers = new ArrayList<>();
public void addObserver(Observer observer) {
observers.add(observer);
}
public void notifyObservers(float price) {
for (Observer observer : observers) {
observer.update(price);
}
}
}
```
4. **其他模式**还有许多,比如代理模式(控制对目标的访问)、模板方法模式(定义算法骨架,让子类可以替换某些步骤),等等。
阅读全文