博主打算从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);
}
}
}
以上是常见的三种设计模式的详细说明和示例代码。设计模式可以帮助您解决软件设计中的各种问题,并提高代码的可维护性和可扩展性。