21xrx.com
2024-12-23 02:42:26 Monday
登录
文章检索 我的文章 写文章
Java设计模式及应用案例范文
2023-06-16 19:52:43 深夜i     --     --
java 设计模式 案例应用

Java是一门应用广泛的高级编程语言,具有优秀的可移植性、简单性和可靠性,因此在各行各业均有广泛的应用。而在Java开发中,设计模式是一种常见的程序设计方法,它可以帮助开发者解决各种软件设计问题。

Java中常见的设计模式包括:单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式、适配器模式、桥接模式、装饰模式、外观模式、享元模式、代理模式、模板方法模式、策略模式、迭代器模式、观察者模式、中介者模式、备忘录模式、命令模式、状态模式、责任链模式、访问者模式。

这些设计模式都有其独特的应用场景和解决问题的方式,具体实现方法也多种多样。下面以其中的观察者模式为例,介绍其应用案例。

观察者模式的核心是定义对象间的一种一对多依赖关系,当一个对象的状态发生改变时,其所有依赖对象都会得到通知并自动更新。在Java中,观察者模式常用于GUI系统、事件驱动系统和发布/订阅系统中。

例如,一个温度计的状态发生变化时,观察者模式可以让所有依赖它(如温度计显示器、报警器等)的对象都得到相应的通知并更新显示。

以下是一个基于观察者模式的简单示例代码:


interface Observer {

  void update(double temperature);

}

interface Subject {

  void registerObserver(Observer observer);

  void removeObserver(Observer observer);

  void notifyObservers();

}

class WeatherStation implements Subject {

  private List observers;

  private double temperature;

  public WeatherStation() {

    observers = new ArrayList<>();

  }

  public void setTemperature(double temperature) {

    this.temperature = temperature;

    notifyObservers();

  }

  public void registerObserver(Observer observer) {

    observers.add(observer);

  }

  public void removeObserver(Observer observer) {

    observers.remove(observer);

  }

  public void notifyObservers() {

    for (Observer observer : observers) {

      observer.update(temperature);

    }

  }

}

class TemperatureDisplay implements Observer {

  private double temperature;

  public void update(double temperature) {

    this.temperature = temperature;

    System.out.println("Current temperature: " + temperature);

  }

}

class Alarm implements Observer {

  private double temperature;

  public void update(double temperature) {

    this.temperature = temperature;

    if (temperature > 100) {

      System.out.println("WARNING: Temperature too high!");

    }

  }

}

public class ObserverPatternDemo {

  public static void main(String[] args) {

    WeatherStation weatherStation = new WeatherStation();

    TemperatureDisplay temperatureDisplay = new TemperatureDisplay();

    Alarm alarm = new Alarm();

    weatherStation.registerObserver(temperatureDisplay);

    weatherStation.registerObserver(alarm);

    weatherStation.setTemperature(80);

    weatherStation.setTemperature(95);

    weatherStation.setTemperature(110);

  }

}

观察者模式是一种简单而又实用的设计模式,在Java开发中应用广泛。开发者可以根据具体需求,选择适合的设计模式来解决问题,提高程序的可读性、可维护性和可扩展性。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复