假设我需要开发一个包装程序集,允许使用多个底层框架中的任何一个。 后者可以用于数据访问、图形或其他用途。 这是假设所有底层库都提供本质上相同的功能,但无论出于何种原因,您可能必须在不同的情况下使用其中一个或另一个。
调用者希望按照单一规范进行编码,并交换到要使用的底层框架中,而不需要更改源代码。
C# 和 .NET 中的哪些语言和框架功能可以最好地避免维护包装器类库的多个副本,因为这种冗余会导致需要对包装器 API 进行多次更新以修复和增强? C# 接口和委托是我想到的两个功能。
您可以使用接口创建包装器的轮廓。
然后,您将为使用特定底层框架的每个包装器实现这些接口。
各个包装器可以轻松地相互换入换出,而无需更改调用代码。
根据您的需求,您还可以使用配置值在运行时动态实例化给定的包装器。这将允许您交换包装器而无需重新编译代码。