Java 如何将状态设计模式与依赖注入相结合
我试图理解如何在Java 1.7代码中组合它们(如果可能):Java 如何将状态设计模式与依赖注入相结合,java,design-patterns,dependency-injection,Java,Design Patterns,Dependency Injection,我试图理解如何在Java 1.7代码中组合它们(如果可能): class View{ private State _state; } abstract class State{ protected View _view; } class UserState extends State{} class AdminState extends State {} 我试图通过这些文章更好地理解它们:和。但最后我更加困惑 我的问题是: 我可以在视图类中注入状态并避免保留状态实例吗 我在实现它的代码中
class View{
private State _state;
}
abstract class State{
protected View _view;
}
class UserState extends State{}
class AdminState extends State {}
我试图通过这些文章更好地理解它们:和。但最后我更加困惑
我的问题是:
- 我可以在视图类中注入状态并避免保留状态实例吗
- 我在实现它的代码中缺少了什么
提前感谢。您遇到的问题对于依赖注入初学者来说很常见。您正在尝试执行循环依赖项注入。我想。读了那篇文章,它比我将要做的更好 不过,简单地说:您正在尝试这样做(从文章中窃取的图片): 最好改为:
+---------+
+---------+ | B |
| A |<-------------| |
| | | |
| | +---+ | |
| |--->| C |<----| |
| | +---+ +---------+
+---------+
+---------+
+---------+| B|
|A | | C |请编辑它以修复它。换句话说,虽然我知道这两种模式,但我对你试图帮助你做的事情了解得不够。+1表示更正。问题已更新。
public class A {
private final B b;
A(B b) {
this.b = b;
}
}
public class B {
private /*not-final*/ A a;
public void setA(A a) {
this.a = a;
}
}
+---------+
+---------+ | B |
| A |<-------------| |
| | | |
| | +---+ | |
| |--->| C |<----| |
| | +---+ +---------+
+---------+