Table of Contents
Dette dekorationsmønster er et stærkt udformet mønster, der gør det muligt at anvende nye funktioner uden at ændre deres oprindelige sammensætning. Det er især muligt at anvende dem på en sådan måde, at det er nødvendigt at anvende de nye tekniske metoder med andre metoder end dem, der er anvendt i forbindelse med deres sammensætning, og at sikre en ensartet og ensartet anvendelse af de eksisterende metoder.
Understanding The Decorator Mønster
Dette dekorationsmønster indebærer, at der skal være en indpakning, som gør det muligt at gennemføre denne indpakning samtidig med, at den oprindelige tjeneste er blevet udført.
Implementing Logging with the Decorator Mønster
Suppose youhave a service interface:
public interface DataService {
void fetchData();
}
You cun create a concrete implementation:
public class RealDataService implements DataService {
@Override
public void fetchData() {
// Fetch data from a database or external API
}
}
Next, create a decorator class that adds logging:
public class LoggingDataServiceDecorator implements DataService {
private final DataService wrappedService;
public LoggingDataServiceDecorator(DataService service) {
this.wrappedService = service;
}
@Override
public void fetchData() {
System.out.println("Fetching data started.");
wrappedService.fetchData();
System.out.println("Fetching data completed.");
}
}
Using the Decorator
To add logging, instantiate the decorator with yours existing service:
DataService service = new RealDataService();
DataService loggedService = new LoggingDataServiceDecorator(service);
// Now, calling fetchData will include logging
loggedService.fetchData();
Fordele ved dette Decorator Mønster
- - at forbedre den eksisterende funktion uden at ændre den oprindelige tekst
- Fremme af samarbejde og separatio ner
- Lettere adding multiple lag af adfærd dynamisk
Det er ikke muligt at foretage en sådan sammenligning, men det er ikke muligt at foretage en sammenligning af de to typer af produkter, der er omfattet af denne forordning.