terça-feira, 8 de março de 2022

 Powershell Composite Design Pattern Logger

class ILogger {
Log([String] $Message) {}
}

class CompositeLogger: ILogger {

# Declarando um array de ILoggers
[ILogger[]] $_loggers

CompositeLogger([ILogger[]] $_loggers) {
$this._loggers = $_loggers
}

Log([String] $Message) {
foreach ($obj_logger in $this._loggers) {
$obj_logger.Log($Message)
}
}
}

class ConsoleLogger: ILogger {
Log([String] $Message) {
Write-Host "Escrevendo no console."
Write-Host "Esta é a mensagem: $Message."
}
}

class FileLogger: ILogger {
Log([String] $Message) {
Write-Host "Escrevendo em arquivo."
Write-Host "Esta é a mensagem: $Message."
}
}

$MeuArrayDeLogs = @([ConsoleLogger]::new(), [FileLogger]::new())
[CompositeLogger] $CompositeLogger = [CompositeLogger]::new($MeuArrayDeLogs)
$CompositeLogger.Log("Esta eh a mensagem.")


Nenhum comentário:

Postar um comentário

Decorator Powershell Design Patterns

 Powershell Design Patterns Decorator ```powershell # Classe base 'Beverage' class Beverage {     [string]$description = "Unkno...