设计模式是软件开发中常用的解决方案,它们可以帮助我们解决常见的问题,提高代码的可重用性、可维护性和扩展性。本文将介绍一些基本的设计模式,并探讨它们在软件开发中的应用。

单例模式 (Singleton)

单例模式确保一个类只有一个实例,并提供一个全局访问点。这种模式常用于数据库连接、文件系统操作等场景。

public class Singleton {
    private static Singleton instance;

    private Singleton() {}

    public static Singleton getInstance() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

工厂模式 (Factory)

工厂模式提供了一种创建对象的方法,而不必直接实例化对象。它将对象的创建过程封装起来,便于后续扩展。

public interface Product {
    void use();
}

public class ConcreteProductA implements Product {
    public void use() {
        System.out.println("使用产品A");
    }
}

public class ConcreteProductB implements Product {
    public void use() {
        System.out.println("使用产品B");
    }
}

public class Factory {
    public static Product createProduct(String type) {
        if ("A".equals(type)) {
            return new ConcreteProductA();
        } else if ("B".equals(type)) {
            return new ConcreteProductB();
        }
        return null;
    }
}

观察者模式 (Observer)

观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知。

public interface Observer {
    void update();
}

public class ConcreteObserver implements Observer {
    public void update() {
        System.out.println("观察者收到通知");
    }
}

public class Subject {
    private List<Observer> observers = new ArrayList<>();

    public void addObserver(Observer observer) {
        observers.add(observer);
    }

    public void notifyObservers() {
        for (Observer observer : observers) {
            observer.update();
        }
    }
}

总结

以上是几种常见的设计模式,它们在软件开发中有着广泛的应用。通过学习这些模式,我们可以提高代码的质量,降低维护成本。

了解更多设计模式