2

假设我需要开发一个允许使用多个底层框架中的任何一个的包装程序集。后者可能用于数据访问、图形或其他。这是假设所有底层库都提供基本相同的功能,但无论出于何种原因,您可能不得不在不同的情况下使用其中一个或另一个。

调用者希望将代码编写为单一规范并在要使用的任何底层框架中进行交换,而无需更改源代码。

C# 和 .NET 中的哪些语言和框架功能可以最好地避免维护包装类库的多个副本,因为这种冗余会导致需要对包装 API 进行多次更新以修复和增强?C# 接口和委托是我想到的两个特性。

4

1 回答 1

4

您将使用接口为包装器创建大纲。

然后,您将为使用特定底层框架的每个包装器实现这些接口。

然后可以轻松地相互交换各个包装器,而无需更改调用代码。

根据您的需要,您还可以使用配置值在运行时动态实例化给定的包装器。这将允许您交换包装器而无需重新编译您的代码。

于 2012-12-20T18:46:46.263 回答