コード例 #1
0
 public void DoSupport(Trouble trouble)
 {
     if (Resolve(trouble))
     {
         Done(trouble);
     }
     else if (next != null)
     {
         next.DoSupport(trouble);
     }
     else
     {
         Fail(trouble);
     }
 }
コード例 #2
0
 public void SupportTrouble(Trouble trouble)
 {
     if (Resolve(trouble))
     {
         Console.WriteLine("問題" + trouble.Number + "は" + _name + "が解決しました。");
     }
     else if (_next != null)
     {
         _next.SupportTrouble(trouble);
     }
     else
     {
         Console.WriteLine("問題" + trouble.Number + "は現在のサポート体制では解決できませんでした。");
     }
 }
コード例 #3
0
 override public bool Resolve(Trouble trouble)
 {
     return(false);
 }
コード例 #4
0
 public override bool Resolve(Trouble trouble)
 {
     return(trouble.Number == number);
 }
コード例 #5
0
 public override bool Resolve(Trouble trouble)
 {
     return(trouble.Number % 2 == 1);
 }
コード例 #6
0
 public override bool Resolve(Trouble trouble)
 {
     return(trouble.Number < limit);
 }
コード例 #7
0
 protected void Fail(Trouble trouble)
 {
     Console.WriteLine(trouble + " cannot be resolved.");
 }
コード例 #8
0
 protected void Done(Trouble trouble)
 {
     Console.WriteLine(trouble + " is resolved by " + this + ".");
 }
コード例 #9
0
 protected abstract bool Resolve(Trouble trouble);
コード例 #10
0
 abstract public bool Resolve(Trouble trouble);