我正忙着编程,我的自学带来了这个问题.我一直在阅读有关设计模式的内容,并想知道对此有何建议.
我的测试应用程序向MSMQ发送消息.我想编写一个Windows服务,它将监听这个MSMQ并收到它收到的每条消息,我希望它能够执行一个简单的数据库插入.
我看了这篇文章的链接文字
这给了我一些我需要的信息.在这个例子中,我可以完成我的大部分工作
private static void MyReceiveCompleted(Object source, ReceiveCompletedEventArgs asyncResult) { // Connect to the queue. MessageQueue mq = (MessageQueue)source; // End the asynchronous Receive operation. Message m = mq.EndReceive(asyncResult.AsyncResult); // Display message information on the screen. Console.WriteLine("Message: " + (string)m.Body); // Restart the asynchronous Receive operation. mq.BeginReceive(); return; }
但是,有一种特定的模式是更可行的候选人吗?从阅读我认为它可能是'命令'模式,但我不确定这是否是最好的模式.任何想法或想法,以帮助我更好地理解模式.
我读过的关于模式的书:Head First Design模式 - 我知道混合评论在这上面订购了四个一组的设计模式的使用副本(sp?)
这与您的问题没有直接关系,但开发任何类型的服务(Web服务,Windows服务等)的关键设计模式是将您的功能与服务主机分开.
也就是说,有一个实际执行工作的类.并有一个叫班级的服务.
这样,您可以在多个主机中轻松地重新托管服务,并可以通过控制台应用程序,winforms应用程序或单元测试轻松地测试功能.