21xrx.com
2024-11-08 22:30:04 Friday
登录
文章检索 我的文章 写文章
Java三种常用设计模式和实例
2023-06-11 00:09:25 深夜i     --     --
Java 设计模式 代码量

Java作为一门优秀的编程语言,在软件开发领域有着广泛的应用,其代码量庞大,如今已超过10亿行。而在Java的开发过程中,设计模式是非常重要的一部分,它可以提高代码的可读性、可维护性、可扩展性和可重用性。

下面介绍Java中常用的三种设计模式及其实例:

1. 单例模式

单例模式是一种只实例化一次的模式,主要应用于线程池、数据库连接池等。Java中可以使用双重校验锁和静态内部类两种方式来实现单例模式。代码实例:


public class Singleton {

  private static volatile Singleton instance;

  private Singleton() {}

  public static Singleton getInstance() {

    if (instance == null) {

      synchronized(Singleton.class) {

        if (instance == null) {

          instance = new Singleton();

        }

      }

    }

    return instance;

  }

}

2. 工厂模式

工厂模式是一种将实例化过程封装的模式,主要应用于创建对象时需要较多的初始化操作。Java中可以使用简单工厂、工厂方法和抽象工厂三种方式来实现工厂模式。代码实例:


public interface Product {

  void displayInfo();

}

public class ProductA implements Product {

  public void displayInfo() {

    System.out.println("This is product A.");

  }

}

public class ProductB implements Product {

  public void displayInfo() {

    System.out.println("This is product B.");

  }

}

public interface Factory {

  Product createProduct();

}

public class SimpleFactory implements Factory {

  public Product createProduct(String type) {

    Product product = null;

    if (type.equalsIgnoreCase("A")) {

      product = new ProductA();

    } else if (type.equalsIgnoreCase("B")) {

      product = new ProductB();

    }

    return product;

  }

}

3. 观察者模式

观察者模式是一种多个对象间依赖关系的模式,主要应用于当一个对象发生改变时,需要通知其他对象进行相应的操作。Java中可以使用JDK自带的Observable类和Observer接口来实现观察者模式。代码实例:


public class Subject extends Observable {

  private int state;

  public void setState(int state) {

    this.state = state;

    setChanged();

    notifyObservers();

  }

  public int getState()

    return state;

  

}

public class ObserverA implements Observer {

  public void update(Observable o, Object arg) {

    System.out.println("Observer A is notified. State: " + ((Subject)o).getState());

  }

}

public class ObserverB implements Observer {

  public void update(Observable o, Object arg) {

    System.out.println("Observer B is notified. State: " + ((Subject)o).getState());

  }

}

总结:以上三种设计模式在Java中应用十分广泛且常用,掌握这些模式可以提高程序的可复用性和可扩展性。虽然Java代码量庞大,但是使用设计模式可以让代码更简洁、易读、易维护。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章