Vedi il link qui: link , che descrive Double Dispatch come odore di codice. Ora guarda questo link: link , che parla circa la doppia spedizione che rafforza il dominio. Lo stesso autore del secondo link (che crede in Double Despatch) ha scritto il codice qui: link e in particolare questo (che credo sia il modello di doppia spedizione):
public Offer AssignOffer(OfferType offerType, IOfferValueCalculator valueCalculator)
{
DateTime dateExpiring = offerType.CalculateExpirationDate();
int value = valueCalculator.CalculateValue(this, offerType);
var offer = new Offer(this, offerType, dateExpiring, value);
_assignedOffers.Add(offer);
NumberOfActiveOffers++;
return offer;
}
Da quello che posso capire; il primo autore sta dicendo che il doppio invio è un modello anti perché viola i principi SOLID. Tuttavia, credo che i principi SOLID siano violati nel suo codice a causa del modo in cui ha progettato le classi; non specificamente a causa della doppia spedizione. Inoltre noto che i due articoli sono stati scritti entro un mese l'uno dall'altro nel 2010.
Double Dispatch è un pattern anti?