在ActiveMQ中,对外提供的API已经实现了外观模式。
具体来说:
ActiveMQ对外提供的接口
ActiveMQ API主要提供以下几个接口:
- ActiveMQConnectionFactory:用于创建与ActiveMQ Broker的连接。
- JMSContext:包括生产者和消费者功能的高层次接口,隐藏了JMS客户端的细节。
- Topic:表示消息主题,用于发布订阅模式。
- Queue:表示消息队列,用于点对点模式。
- 等等。
这些接口,提供了使用ActiveMQ消息中间件的最基本功能。
外观模式
这些接口可以看做是外观,对内部复杂的ActiveMQ实现进行了封装:
- ActiveMQConnectionFactory:内部创建了与Broker的TCP连接,并创建会话、生产者等对象。
- JMSContext:内部创建生产者、消费者和相关会话、连接,但对外屏蔽了这些细节。
- Topic : 对内部复杂的主题实现进行了屏蔽。
- Queue : 对内部的队列实现进行了屏蔽。
正是由于这些外观,用户才可以只关注基本的功能而没有实现细节。
提供更高层次的接口
相比于原生的JMS接口,ActiveMQ提供了更高层次的JMSContext
接口,大大简化了使用。
内部还实现了许多ActiveMQ特定的机制,如分布式队列、高可靠性等。所有这些,对用户都是透明的。
所以可以总结:
ActiveMQ通过提供外观接口,对内部复杂的实现进行了屏蔽,向用户提供更高层次的接口。这符合外观模式的设计初衷。