我有一个创建MS Word文档并运行它的应用程序。我试图找出将该代码放入哪个图层。
运行外部文档是表示层的一部分还是业务逻辑层的一部分?
一方面,它似乎应该是表示层的一部分,因为它最终会导致某些内容被呈现出来#34;给用户(尽管在外部应用程序中)。另一方面,它似乎更像是一个业务逻辑层关注点,因为表示层可能只想关注当前应用程序的UI,并且因为当它归结为它时所有它真的在做正在运行一个外部流程 - 可以用于多个外部流程的东西,这些流程都不具备"演示"他们的方面。
另外,我不确定SO是否适合这个问题。我检查了https://softwareengineering.stackexchange.com/,但这些标签上只有少数粉丝。
答案 0 :(得分:0)
这取决于“表示层的一部分”的含义。如果你的意思是实际的实现,那肯定不是。是的,结果是打开的Word文档,但这与应用程序的表示层无关。
所以你的代码应该如下:
public class BusinessLayerService
{
private IDocumentGenerator _documentGenerator;
public BusinessLayerService(IDocumentGenerator documentGenerator)
{
_documentGenerator = documentGenerator;
}
public void DoBusinessCase1()
{
// Do work here
_documentGenerator.GenerateDocument();
}
}
如果你使用任何IoC容器,只需在你的应用程序上注册所需的实现(对于web,windows,mobil或console应用程序)。
希望它有所帮助!