我正在尝试更新旧代码库并添加依赖项注入,以便轻松地对整个组件进行单元测试。
假设我有一个类Patient
,然后是提供加载和保存方法的IPatientDBController
。然后FilesAsDB:IPatientDBController
是基于xml文件的接口的实现。
我认为耐心的好方法是:
public class Patient
{
private IPatientDBController _DB;
public Patient(IPatientDBController DB) {_DB = DB}
public Save()
{
path = "precalcultedpath";
_DB.saveToXML(this, path);
}
}
我现在的问题是我有一个程序集,我们称它为BaseAssembly
,其中包含诸如患者之类的基本内容。然后是Managers
程序集,其中包含FilesAsDB
和IPatientDBController
,并且需要引用BaseAssembly
。
但是随后BaseAssembly
需要使用Ifaces引用程序集(而又需要引用其自身)
构造整件事的正确方法是什么?