Interessant ....
Allgemein C# .Net
Hier stellt der CodingCraftman Möglichkeiten vor, wie man "gleiche Logiken" an einer Stelle sammeln kann ....
Seine vorgestellte Implementierung (Methode 2) habe ich ein wenig geschärft ....
Kategorie Hier stellt der CodingCraftman Möglichkeiten vor, wie man "gleiche Logiken" an einer Stelle sammeln kann ....
Seine vorgestellte Implementierung (Methode 2) habe ich ein wenig geschärft ....
In seinem Artikel hatte ich beim Lesen
an folgenden Stellen ein "leichtes grummeln im Bauch" ->
public class Operation<T>
{
protected static Func<ILog, bool> isEnabled;
protected static Action<ILog, string> logCommand;
public bool IsEnabled(ILog log)
{
return isEnabled.Invoke(log);
}
public void Log(ILog log, string message)
{
logCommand.Invoke(log, message);
}
}
Die Typen ILog und String sind fest definiert!
und
if (logOp.IsEnabled(log))
{
logOp.Log(log, message.Invoke());
}
die eigentlich Logik ist im Wrapper implementiert, wobei Sie nach meinem bescheidenen Gefühl irgendwie in den Operator sollte .....
Ich habe folgende Lösung anzubieten ->
Die Logik wurde komplett in der Klasse Switch implementiert,
d.h. die Logik kann auch in andere Anwendungsfällen wiederverwendet werden, (reduziert z.B. die Implementierung der verschiedenen Wrapper).
Es wurden 3 Methoden zur Verfügung gestellt ->
Process -> verarbeitet Rückgabe True und False
ProcessOnlyTrue -> nur True Prüfung
ProcessOnlyFalse -> naja weiß man jetzt
Aufruf der LogFunktionalität durch die Extension Method
logger.Log<Debug>(()=>text)
Gruß und schönes Wochenende JJR
public class Operation<T>
{
protected static Func<ILog, bool> isEnabled;
protected static Action<ILog, string> logCommand;
public bool IsEnabled(ILog log)
{
return isEnabled.Invoke(log);
}
public void Log(ILog log, string message)
{
logCommand.Invoke(log, message);
}
}
Die Typen ILog und String sind fest definiert!
und
if (logOp.IsEnabled(log))
{
logOp.Log(log, message.Invoke());
}
die eigentlich Logik ist im Wrapper implementiert, wobei Sie nach meinem bescheidenen Gefühl irgendwie in den Operator sollte .....
Ich habe folgende Lösung anzubieten ->
Die Logik wurde komplett in der Klasse Switch implementiert,
d.h. die Logik kann auch in andere Anwendungsfällen wiederverwendet werden, (reduziert z.B. die Implementierung der verschiedenen Wrapper).
Es wurden 3 Methoden zur Verfügung gestellt ->
Process -> verarbeitet Rückgabe True und False
ProcessOnlyTrue -> nur True Prüfung
ProcessOnlyFalse -> naja weiß man jetzt
Aufruf der LogFunktionalität durch die Extension Method
logger.Log<Debug>(()=>text)
Gruß und schönes Wochenende JJR