博主打算从0-1讲解下java基础教学,今天教学第十四篇:Java中设计模式。
设计模式是解决软件设计中常见问题的可重复利用的解决方案。在 Java 中,常见的设计模式包括单例模式、工厂模式、观察者模式等。目前在基础教学篇中只展示常见的几种模式。
一、 单例模式(Singleton Pattern)
说明:
单例模式确保一个类只有一个实例,并提供全局访问点。
示例代码:
public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
二、工厂模式(Factory Pattern)
说明:
工厂模式用于创建对象,隐藏对象创建的具体实现细节。
示例代码:
interface Shape { void draw(); } class Rectangle implements Shape { @Override public void draw() { System.out.println("Drawing rectangle"); } } class Circle implements Shape { @Override public void draw() { System.out.println("Drawing circle"); } } class ShapeFactory { public Shape getShape(String shapeType) { if (shapeType == null) { return null; } if (shapeType.equalsIgnoreCase("RECTANGLE")) { return new Rectangle(); } else if (shapeType.equalsIgnoreCase("CIRCLE")) { return new Circle(); } return null; } }
三、观察者模式(Observer Pattern)
说明:
观察者模式定义了对象之间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖它的对象都会收到通知并自动更新。
示例代码:
import java.util.ArrayList; import java.util.List; interface Observer { void update(String message); } class ConcreteObserver implements Observer { private String name; public ConcreteObserver(String name) { this.name = name; } @Override public void update(String message) { System.out.println(name + " received message: " + message); } } interface Subject { void attach(Observer observer); void detach(Observer observer); void notifyObservers(String message); } class ConcreteSubject implements Subject { private List<Observer> observers = new ArrayList<>(); @Override public void attach(Observer observer) { observers.add(observer); } @Override public void detach(Observer observer) { observers.remove(observer); } @Override public void notifyObservers(String message) { for (Observer observer : observers) { observer.update(message); } } }
以上是常见的三种设计模式的详细说明和示例代码。设计模式可以帮助您解决软件设计中的各种问题,并提高代码的可维护性和可扩展性。