基于Java引用改变接口的能力或方法

时间:2015-04-26 14:38:28

标签: java java-ee

我希望能够做的是以下内容: 假设我有一些名为Communication

的界面

然后我有一个名为Core的软件包想要使用通信接口。

然后我有两个用于通信的包,一个用于串行,一个用于MQ,每个包含接口: -ISerialCommunication扩展了通信 -IRabbitMQCommunication扩展了沟通

我是否有一种方法或方法可以自动使用ISerialCommunication,方法是在构建路径中引用该包而不是RabbitMQ包(基本上是基于我的客户想要的即插即用包),除了创建我自己的接口工厂基于配置?

我很好奇,如果我在这里缺少任何图书馆或设计原则。

谢谢, 丹

1 个答案:

答案 0 :(得分:0)

您有一个界面Communication,然后是您的课程ISerialCommunication& IRabbitMQCommunication实施您的界面。

如果我理解得很好,你想让你的代码松散耦合。

您可以这样编写代码

Communication comm = new ISerialCommunication();
Communication comm = new IRabbitMQCommunication();

在代码中使用comm引用,因此在运行时只需更改ISerial或IRabbit的实现。选择两者中的任何一个。引用comm将保持不变,您无需在代码中的其他位置更改引用。