Java设计模式及示例代码

由于设计模式种类较多,通常分为创建型、结构型和行为型三大类,每种模式又有其特定的实现方式。在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); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值