spring 框架中广泛应用以下设计模式:单例模式用于创建唯一对象实例;工厂模式用于创建对象而不指定具体类;策略模式用于封装算法或行为;观察者模式允许对象订阅并响应事件。
Spring 框架中设计模式的应用
在 Spring 框架中,设计模式广泛应用于:
单例模式
用于创建唯一对象实例:
1
2
3
4
5
6
7
8
9
10
@Service
public class MyService {
@Autowired
private static MyService instance;
public static MyService getInstance() {
return instance;
}
}
工厂模式
创建对象而不指定其具体类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
interface MyFactory {
MyObject create();
}
class MyConcreteFactory implements MyFactory {
@Override
public MyObject create() {
return new MyConcreteObject();
}
}
class MyApplication {
public static void main(String[] args) {
MyFactory factory = new MyConcreteFactory();
MyObject object = factory.create();
}
}
策略模式
封装算法或行为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
interface MyStrategy {
void execute();
}
class MyConcreteStrategy1 implements MyStrategy {
@Override
public void execute() {
// 执行策略1逻辑
}
}
class MyConcreteStrategy2 implements MyStrategy {
@Override
public void execute() {
// 执行策略2逻辑
}
}
class MyClient {
private MyStrategy strategy;
public void setStrategy(MyStrategy strategy) {
this.strategy = strategy;
}
public void executeStrategy() {
strategy.execute();
}
}
观察者模式
允许对象订阅并响应事件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
interface MySubject {
void registerObserver(MyObserver observer);
void removeObserver(MyObserver observer);
void notifyObservers();
}
interface MyObserver {
void update(MySubject subject);
}
class MyConcreteSubject implements MySubject {
private List<MyObserver> observers = new ArrayList<>();
@Override
public void registerObserver(MyObserver observer) {
observers.add(observer);
}
@Override
public void removeObserver(MyObserver observer) {
observers.remove(observer);
}
@Override
public void notifyObservers() {
for (MyObserver observer : observers) {
observer.update(this);
}
}
}
以上就是特定Java框架(如Spring/Hibernate)中的设计模式应用的详细内容,更多请关注其它相关文章!