|
|
1
1
通常最好将模型对象保持为POCO/POJO,并让控制器使用注入的依赖项填充模型(和视图)。 因为很多不同的原因, 构造器注入 是DI的最佳默认选择。下面是一个基于C的控制器示例,其中包含一个注入的IDatabase:
我不知道这是否看起来像您现有的接口,但它应该足够给您一个想法。注意如何
你可以使用 穷人的迪 或者一个合适的DI容器,将应用程序连接到应用程序的入口点。这将是您将IDatabase映射到具体实现的地方,允许您遵循 Liskov Substitution Principle 在代码的其余部分。 |
|
|
2
1
正如您指出的,您必须将持久性连接到模型。如果您认为这是一个依赖项(没有它,模型就不能工作),那么将它传递给构造函数。这告诉全世界,一个模型必须能够访问持久性,并且在您拥有它所需要的一切之前,不能创建一个模型。一个构造函数看起来不像是比一个属性更多的代码,而且更安全。
第二,我不会说那东西是
|
|
|
3
0
我用最简单的方法来解决这类问题:通过
这个解决方案不仅使生产代码尽可能简单,而且还可以进行单元测试!例如,这里有一个几乎完整的JUnit测试,使用 JMockit 期望API(我为实现此类测试而创建的工具):
|