--- tags: AT&T --- # AzureServiceBus ## Factory ```plantuml interface IQueueFactory { IQueueProducer CreateProdcuer(bool isDeadLetter); IQueueConsumer CreateConsumer(bool isDeadLetter); } class AzureQueueFactory { } AzureQueueFactory -up-|> IQueueFactory ``` ## Producer ```plantuml interface IQueueProducer { Send(String Message); Close(); } class AzureQueueProducer { } class AzureDeadLetterQueueProducer { } AzureQueueProducer -up-|> IQueueProducer AzureDeadLetterQueueProducer -up-|> IQueueProducer ``` ## Consumers ```plantuml interface IQueueConsumer { Recieve(); Close(); } class AzureQueueConsumer { } class AzureDeadLetterQueueConsumer { } AzureQueueConsumer -up-|> IQueueConsumer AzureDeadLetterQueueConsumer -up-|> IQueueConsumer ``` ## Usages ### Servers: ```plantuml class ServerHandler { - IQueueConsumer consumer; - IQueueProducer DeadLetterProducer; <<create>>ServerHandler(consumer:IQueueConsumer, DeadLetterConsumer:IQueueProducer); } ``` ### GUI: ```plantuml class GuiHandler { - IQueueConsumer DeadLetterConsumer; - IQueueProducer Producer; - IQueueConsumer DeadLetterConsumer; - IQueueProducer Producer; } ``` ### client: ```plantuml class ClientHandler { - IQueueProducer Producer; } ``` ```