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