use*_*149 3 .net c# design-patterns interface
我遇到了这个问题:
实现IP产品接口的SQLBackend中的产品类.
我还在SAPBackend(ERP,会计软件)中获得了一个实现相同IP产品的产品.
两个后端都处于不同的项目中.
我希望能够在这两个项目之间使用传递产品,所以我需要相同的通用接口.
我在考虑将IProduct放在一个通用的接口项目中,但如果有许多常见的情况会导致该项目中有很多接口.如果只是导致我将这些接口暴露给很多项目
我想知道是否有一个更好的案例,所以SAPBackend和SQLBackend支持他们自己并仍然共享一个共同的界面?
namespace Interfaces
{
public interface IProduct
{
string name {set; get;}
}
}
namespace Sqlbackend
{
public class Product : IProduct
{
public string name { set; get; }
}
}
namespace ERPbackend
{
public class Product : IProduct
{
public string name { set; get; }
}
}
Run Code Online (Sandbox Code Playgroud)
.NET中的类型由其程序集确定范围.除非接口在同一个程序集中,否则它不是同一类型,因此不会被视为(转换将失败等).
所以你需要在这里的项目之间进行参考; 最常见的是,第三个dll中只有常见的类型和接口.
例外情况是,如果您在两个层之间进行基于合同的SOA(例如通过WCF).但我不认为这是你的意图.