设计模式在Java中的实践案例

原创 我不是女神ヾ 2024-12-11 12:15 116阅读 0赞

设计模式是面向对象编程经验的总结,它提供了一种解决常见问题的标准化方式。在Java中,我们可以通过创建具体的类来实现这些设计模式。

以下是一些设计模式在Java中的实践案例:

  1. 单例模式

    1. // 静态内部类实现单例
    2. public class Singleton {
    3. private static Singleton instance;
    4. private Singleton() {}
    5. public static Singleton getInstance() {
    6. if (instance == null) {
    7. instance = new Singleton();
    8. }
    9. return instance;
    10. }
    11. }
  2. 工厂模式
    ```java
    // 简单工厂
    public abstract class SimpleFactory {
    public abstract Product createProduct();
    }

// 工厂方法实现
public class ConcreteSimpleFactory implements SimpleFactory {
@Override
public Product createProduct() {
return new Product1();
}
}

// 产品类
public class Product {
// … 其他业务逻辑 …
}

// 使用示例
public class Client {
public static void main(String[] args) {
SimpleFactory factory = new ConcreteSimpleFactory();
Product product = factory.createProduct();
// … 其他业务逻辑 …
}
}

  1. 3. **观察者模式**:
  2. ```java
  3. // 观察者接口
  4. public interface Observer {
  5. void update(String data);
  6. }
  7. // 被观察者接口
  8. public interface Observable {
  9. void attach(Observer observer);
  10. void detach(Observer observer);
  11. void notifyAllObservers();
  12. }
  13. // 实现类
  14. class ConcreteObservable implements Observable {
  15. private List<Observer> observers = new ArrayList<>();
  16. @Override
  17. public void attach(Observer observer) {
  18. observers.add(observer);
  19. }
  20. @Override
  21. public void detach(Observer observer) {
  22. observers.remove(observer);
  23. }
  24. @Override
  25. public void notifyAllObservers() {
  26. for (Observer observer : observers) {
  27. observer.update("New data");
  28. }
  29. }
  30. }
  31. // 观察者类
  32. class ConcreteObserver implements Observer {
  33. private String data;
  34. @Override
  35. public void update(String data) {
  36. this.data = data;
  37. System.out.println("Observer received: " + data);
  38. }
  39. }
  40. // 使用示例
  41. public class Client {
  42. public static void main(String[] args) {
  43. // 创建被观察者对象
  44. ConcreteObservable observable = new ConcreteObservable();
  45. // 创建观察者对象
  46. ConcreteObserver observer = new ConcreteObserver();
  47. // 附加观察者
  48. observable.attach(observer);
  49. // 发布通知
  50. observable.notifyAllObservers();
  51. // 清除观察者
  52. observable.detach(observer);
  53. }
  54. }

以上案例展示了如何在Java中实现单例模式、工厂模式和观察者模式。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,116人围观)

还没有评论,来说两句吧...

相关阅读