我的問題是有點含糊...如何在構造函數/參數注入之間進行選擇?
比方說,我有這個過程,發送郵件到一個店鋪時,有一個新的秩序
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