Open
Code
Home
Create
List
Home
Create
List
Edit
Title
Content
O Decorator é um padrão de design que permite adicionar funcionalidades a um objeto de forma dinâmica, sem alterar o código da classe original. Ele "envolve" a classe original (ou serviço) e pode modificar seu comportamento, como adicionar logs, validações, ou outras funcionalidades adicionais. Como é usado: Definição do Decorator: Criamos uma classe que implementa a mesma interface da classe original (por exemplo, IBlobService), mas no seu construtor, ela recebe a instância original. Interceptação de Métodos: O Decorator executa a lógica adicional (como logs, medições de tempo, etc.) e, em seguida, chama os métodos da classe original. O que o Decorator faz no seu caso: Registra Logs: Ele intercepta as chamadas de método do BlobService, mede o tempo de execução e registra logs de sucesso ou erro. Exemplo rápido: O BlobServiceLoggingDecorator "envolve" o BlobService e registra logs de execução: ________________________________________________________________________________________ public class BlobServiceLoggingDecorator : IBlobService { private readonly IBlobService _innerService; private readonly ILogger _logger; public BlobServiceLoggingDecorator(IBlobService innerService, ILogger logger) { _innerService = innerService; _logger = logger; } public async Task<IEnumerable<BlobItemWithMetadata>> ListFilesAsync() { _logger.LogInformation("Iniciando ListFilesAsync..."); var result = await _innerService.ListFilesAsync(); _logger.LogInformation("ListFilesAsync completado."); return result; } }_____________________________________________________ Neste exemplo, ListFilesAsync() é chamado no BlobService original, mas com logs adicionais feitos pelo decorator. ______________________________________________________ log BlobStorage.Services.Decorators.BlobServiceLoggingDecorator: Information: ListFilesAsync completed in 1620 ms.
Image
Category
Categories
Front-End
Back-End
Database
DevOps
Others
Password
Back to List