使用springboot开发单体项目有没有什么常用的设计模式请举例子做一下讲解
在使用Spring Boot开发单体项目时,常用的设计模式有以下几种:
- 单例模式(Singleton):保证一个类只有一个实例,并提供全局访问点。在Spring Boot中,常用于创建全局唯一的资源管理器、配置对象等。
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
- 工厂模式(Factory):定义一个创建对象的接口,由子类决定实例化哪一个类。在Spring Boot中,常用于创建复杂对象,隐藏具体实现细节。
public interface Animal {
void sound();
}
public class Cat implements Animal {
@Override
public void sound() {
System.out.println("Meow");
}
}
public class Dog implements Animal {
@Override
public void sound() {
System.out.println("Woof");
}
}
public class AnimalFactory {
public static Animal createAnimal(String type) {
if (type.equalsIgnoreCase("cat")) {
return new Cat();
} else if (type.equalsIgnoreCase("dog")) {
return new Dog();
}
return null;
}
}
- 观察者模式(Observer):定义对象间的一对多依赖关系,当一个对象状态发生改变时,所有依赖它的对象都会得到通知并自动更新。在Spring Boot中,常用于事件驱动的编程,比如监听器。
public interface Observer {
void update(String message);
}
public class User implements Observer {
private String name;
public User(String name) {
this.name = name;
}
@Override
public void update(String message) {
System.out.println(name + " received a message: " + message);
}
}
public interface Subject {
void registerObserver(Observer observer);
void removeObserver(Observer observer);
void notifyObservers(String message);
}
public class NewsAgency implements Subject {
private List<Observer> observers = new ArrayList<>();
@Override
public void registerObserver(Observer observer) {
observers.add(observer);
}
@Override
public void removeObserver(Observer observer) {
observers.remove(observer);
}
@Override
public void notifyObservers(String message) {
for (Observer observer : observers) {
observer.update(message);
}
}
}
以上是在Spring Boot开发单体项目中常用的一些设计模式,每种模式都有各自的应用场景,可以根据具体需求选择适合的模式来提高代码的可维护性和可扩展性
原文地址: http://www.cveoy.top/t/topic/h9Ya 著作权归作者所有。请勿转载和采集!