Articoli di programmazione

Design Patterns in pillole: Decorator

Decorator sfrutta l'ereditarietà per estendere le funzionalità di un determinato oggetto

400px-Decorator_UML_class_diagram.svg.png
Quando nel nostro sistema abbiamo oggetti che eseguono determinate azioni e vogliamo riutilizzarle per estenderle, Decorator è un pattern da valutare. Per prima cosa si eredita dalla classe interessata, successivamente si implementano le logiche mancanti estendendo i metodi della classe base:

class UnitedStatesHoliday
{
public string GetItineray()
{
return "Atterra a New York, visitala per 5 giorni poi noleggia l'auto e vai a Boston per 3 giorni";
}
}

class UnitedStatesAndCanadaHolidayDecorator : Itinerary
{
public override GetItineray()
{
return base.GetItineray() + " poi prendi il treno e vai a Montreal per 3 giorni e a Toronto per altri 4";
}
}


#programmazione #designPatterns