问候,让我们假设我有一个名为 的类Formater:IFormater
和一个方法LoadData()
,如下所示:
public interface IFormater { void LoadData(string strSomeData); }
public class Formater : IFormater { public void LoadData(string strSomeData) {/*do some magic*/} }
假设我还有一个名为的类View:IView
和一个方法LoadRawData()
,如下所示:
public interface IView { void LoadRawData(string strSomeData); }
public class View : IView {
private IFormater _formater;
public View(IFormater formater) { _formater = formater; }
public void LoadRawData(string strSomeData) { _formater.LoadData(strSomeData); }
}
现在,在我的 prog 中,我创建了一个View
类的对象并调用LoadRawData()
,如下所示:
static void Main(string[] args) {
kernel = new StandardKernel(new Modules()); //ninject
formater = kernel.Get<IFormater>(); //ninject
IView view = new View(formater);
view.LoadRawData(args[0]);
}
我使用 ninject 作为 DI 机制,实际上现在一切正常。
问题:
IView
让接口在内部调用是否正确Formater::LoadDtata()
?(就我自己而言,我没有看到任何其他方式)。我应该为
Formater::LoadData()
and使用不同的名称View::LoadRawData()
,还是它们应该具有相同的名称,或者可能有一种如何命名它们的做法?
对不起。看起来我做了几个严重的错误。我已经在上面更正了它们。其实我不使用MVC模式。我只是这么想的。
关键是我想将显示逻辑与解析和格式化隔离开来。
我的控制台应用程序应该打开一个文件,读取文本内容并将其传递给格式化程序类,它将进行一些格式化并将其带回(但在格式化程序将其传递给解析器以从原始文本中提取必要的内容之前),就像这个 视图<-> 格式化程序 <-> 解析器
这是一个简单的程序,我用它来更好地理解一些最佳方法和实践,如 TDD、单元测试和 DI。
我很抱歉之前的不一致。