Ejemplo n.º 1
0
 // トラブル解決の手順
 public void DoSupport(Trouble trouble)
 {
     if (Resolve(trouble))
     {
         Done(trouble);
     }
     else if (next != null)
     {
         next.DoSupport(trouble);
     }
     else
     {
         Fail(trouble);
     }
 }
Ejemplo n.º 2
0
 // 未解決
 protected virtual void Fail(Trouble trouble)
 {
     Console.WriteLine(trouble + " cannot be resolved.");
 }
Ejemplo n.º 3
0
 // 解決
 protected virtual void Done(Trouble trouble)
 {
     Console.WriteLine(trouble + " is resolved by " + this + ".");
 }
Ejemplo n.º 4
0
 // 解決用メソッド
 protected abstract bool Resolve(Trouble trouble);
Ejemplo n.º 5
0
 // 解決用メソッド
 protected override bool Resolve(Trouble trouble)
 {
     return(trouble.Number == number);
 }
Ejemplo n.º 6
0
 // 解決用メソッド
 protected override bool Resolve(Trouble trouble)
 {
     return(trouble.Number < limit);
 }
Ejemplo n.º 7
0
 // 解決用メソッド
 protected override bool Resolve(Trouble trouble)
 {
     return(false); // 自分は何も処理しない
 }