blog.fuktommy.com

というわけで結果を * 戻値で受け取る場合(execute1) * コールバックで受け取る場合(execute2) のコード片を書いてみた。 どっちも微妙っちゃあ微妙だなあ。 class Res...

というわけで結果を
* 戻値で受け取る場合(execute1)
* コールバックで受け取る場合(execute2)
のコード片を書いてみた。
どっちも微妙っちゃあ微妙だなあ。


class Response
{
  // 略
}


interface Responder
{
  public function whenAccepted(Response $res);
  public function whenRejected(Response $res);
}


class Hoge implements Responder
{
  public function whenAccepted(Response $res)
  {
    // 依頼が受け付けられたとき
    // $resに入っている受け付け番号とかの処理
  }

  public function whenRejected(Response $res)
  {
    // 依頼が拒否されたとき
    // $resに入っている拒否理由とかの処理
  }

  public function execute1()
  {
    $foo = new Foo();
    try {
      $res = $foo->askSomething();
    } catch (Exception $e) {
      // エラー処理
    }
    if ($res->accepted) {
      $this->whenAccepted($res);
    } elseif ($res->rejected) {
      $this->whenRejected($res);
    }
    // 共通の後片付け
  }

  public function execute2()
  {
    $foo = new Foo();
    try {
      $foo->askSomething($this);
    } catch (Exception $e) {
      // エラー処理
    }
    // 共通の後片付け
  }
}
Copyright© 1998-2014 Fuktommy. All Rights Reserved.
webmaster@fuktommy.com (Legal Notices)