我的问题是有点含糊...如何在构造函数/参数注入之间进行选择?
比方说,我有这个过程,发送邮件到一个店铺时,有一个新的秩序
class BookingMessager : IBookingMessager{
BookingMessager(IBookingDataSource source,IBookingMessageFactory messageFactory,IMessager messager){
this.source = source;
this.messageFactory= messageFactory;
this.messager = messager;
}
void SendBookingMessage(int idBooking){
Booking aBooking = source.GetById(idBooking);
BookingMessage aMessage = messageFactory.Create(aBooking);
messager.SendMessage(aBooking.Shop.Contact,aMessage.Title,aMessage.Content);
}
}
这是运作良好。
新要求:我必须根据商店更改我的消息正文。
我虽然了解这些解决方案:我创建了一个IBookingMessageFactory那将取决于所需的IBookingMessageFactory上像
BookingMessage Create(Booking aBooking){
return this.BookingMessageFactoryIndex.ContainsKey(aBooking.Shop.ID) ? this.BookingMessageFactoryIndex[aBooking.Shop.ID].Create(aBooking) : this.default.Create(aBooking);
}
店或者我注入IBookingMessageFactory作为参数,但会逼我打电话更新我的界面IBookingMessager :(
什么是最好的解决办法吗?难道我的第一个代码行吗?我如何构造和参数注入之间进行选择?
@ JesseC.Slicer你不能这样做,请! – 2011-12-15 08:54:35