我希望能够做的是以下内容: 假设我有一些名为Communication
的界面然后我有一个名为Core的软件包想要使用通信接口。
然后我有两个用于通信的包,一个用于串行,一个用于MQ,每个包含接口: -ISerialCommunication扩展了通信 -IRabbitMQCommunication扩展了沟通
我是否有一种方法或方法可以自动使用ISerialCommunication,方法是在构建路径中引用该包而不是RabbitMQ包(基本上是基于我的客户想要的即插即用包),除了创建我自己的接口工厂基于配置?
我很好奇,如果我在这里缺少任何图书馆或设计原则。
谢谢, 丹
答案 0 :(得分:0)
您有一个界面Communication
,然后是您的课程ISerialCommunication
& IRabbitMQCommunication
实施您的界面。
如果我理解得很好,你想让你的代码松散耦合。
您可以这样编写代码
Communication comm = new ISerialCommunication();
Communication comm = new IRabbitMQCommunication();
在代码中使用comm引用,因此在运行时只需更改ISerial或IRabbit的实现。选择两者中的任何一个。引用comm
将保持不变,您无需在代码中的其他位置更改引用。