我正在努力在我的空闲时间通过在一个简单的数据存储项目中使用它来围绕工厂模式。这个想法是使用 VB.NET 中的简单工厂模式获取简单数据并将其保存到数据库中。我想我对模式本身有了基本的了解,但是,我正在努力解决的是如何将工厂类干净地融入架构中。对于这个项目,我有一个标准的 3 层架构,基本上看起来像这样:
介绍
-Presentation.Common
-Presentation.DataStorageWebAppName
商业
-BusinessLayer.Common
-BusinessLayer.DataStorageAppName
数据
-DataLayer.Common
-DataLayer.DataStorageAppName
常见的
-Common
-Common.DataStorageAppName
接口
-Interfaces.Common
-Interfaces.DataStorageAppName
为了突出我在构建应用程序时遇到问题的特定场景,让我举个例子。假设在业务层中,我在 BusinessLayer.DataStorageAppName DLL 中创建了一个名为 Foo 的类。它有一个接口 IFoo,它位于 Interfaces.DataStorageAppName DLL 中。为了使用简单的工厂模式通过其接口 IFoo 创建类 Foo 的实例,现在,我在 BusinessLayer.DataStorageAppName 中创建了一个工厂类,并编写了一个共享/静态方法来通过 IFoo 接口给我一个实例。后来,据我了解,我可以决定换掉这个 Factory 类返回的对象,而无需做很多其他事情(理论上)。
言归正传,这是可行的,但似乎很奇怪的是,我现在被迫创建了几个工厂类:基本上每个 DLL 一个,这样我就可以避免循环引用。有没有一种更简洁的方法来实现这些工厂类,而无需使用诸如温莎城堡等 3rd 方解决方案。似乎我在这里错过了一个基本概念。如果您愿意的话,似乎应该可以在负责分发对象实例的体系结构中拥有一个“存储库”。
先感谢您!