public abstract class StringHandler
protected StringHandler _next;
public void SetNext(StringHandler next)
public abstract string Execute(string s);
public class StringUpperCaseHandler : StringHandler {
public override string Execute(string s)
public class StringTrimStartHandler : StringHandler {
public override string Execute(string s)
public class StringTrimEndHandler : StringHandler {
public override string Execute(string s)
public static void Main()
StringHandler h1 = new StringUpperCaseHandler();
StringHandler h2 = new StringTrimEndHandler();
StringHandler h3 = new StringTrimStartHandler();
Console.WriteLine(h1.Execute(",, hello,,"));