java设计模式所有示例代码
时间: 2024-08-25 18:00:14 浏览: 51
由于设计模式种类较多,通常分为创建型、结构型和行为型三大类,每种模式又有其特定的实现方式。在Java中实现设计模式,可以通过具体的代码示例来展示。下面我将列举部分设计模式及其在Java中的示例代码。
1. 单例模式(Singleton Pattern)
单例模式是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。以下是单例模式的一种实现方式——懒汉式(线程不安全):
```java
public class Singleton {
// 私有构造方法
private Singleton() {
}
// 私有静态实例
private static Singleton instance;
// 提供一个公共静态方法,返回实例对象
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
2. 工厂模式(Factory Pattern)
工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。以下是一个简单的工厂模式实现示例:
```java
// 抽象产品类
interface Product {
void use();
}
// 具体产品类A
class ConcreteProductA implements Product {
public void use() {
System.out.println("具体产品A的操作");
}
}
// 具体产品类B
class ConcreteProductB implements Product {
public void use() {
System.out.println("具体产品B的操作");
}
}
// 工厂类
class Factory {
public Product createProduct(String type) {
if ("A".equals(type)) {
return new ConcreteProductA();
} else if ("B".equals(type)) {
return new ConcreteProductB();
}
return null;
}
}
```
3. 观察者模式(Observer Pattern)
观察者模式是一种行为设计模式,允许对象之间有一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。以下是观察者模式的简单实现:
```java
// 抽象主题(Subject)角色
interface Subject {
void registerObserver(Observer o);
void removeObserver(Observer o);
void notifyObservers();
}
// 抽象观察者(Observer)角色
interface Observer {
void update(String message);
}
// 具体主题(ConcreteSubject)角色
class ConcreteSubject implements Subject {
private List<Observer> observers = new ArrayList<>();
private String message;
public void registerObserver(Observer o) {
observers.add(o);
}
public void removeObserver(Observer o) {
observers.remove(o);
}
public void notifyObservers() {
for (Observer o : observers) {
o.update(this.message);
}
}
public void setMessage(String message) {
this.message = message;
notifyObservers();
}
}
// 具体观察者(ConcreteObserver)角色
class ConcreteObserver implements Observer {
public void update(String message) {
System.out.println("收到更新:" + message);
}
}
```
阅读全文