遗留系统中的IOC / Unity和参考问题

时间:2014-01-10 11:45:55

标签: .net architecture interface unity-container

我对系统中的对象创建有一些长期关注。 我们目前在我们的产品中有数千个业务类,其中包含数据库映射(在硬编码的sql中保存,加载,删除方法)以及一些业务规则。这些类有多个程序集,但它们都位于一个"产品中。边界(版本控制中的一个主干)。

现在我们将系统的某些部分分成了模块。这些模块不能引用产品组件,但需要一些业务类。

结构示例

我有一个名为customer的产品程序集和一个名为CompanyCustomer

的类

然后我有一个名为Booking的模块组件,它有类BookingManager。在BookingManager中,我需要使用CompanyCustomer,从数据库加载它并从中读取一些属性。

我现在已经创建了接口IBookingManagerCompanyCustomer,在CompanyCustomer中实现了该接口(因为Customer程序集可以引用Booking程序集,而不是反之亦然)。然后我通过解析该接口的实现来使用Unity创建对象。

这是一个好主意还是你会提出其他方法?

我很少关注创建统一的商务课程。此方法还会导致创建不必要的接口,因为需要CompanyCustomer的所有模块都必须为此类添加自己的接口,并且类必须实现所有这些接口。基本上,CompanyCustomer将实现与我们产品中的模块一样多的接口。

0 个答案:

没有答案