2 デリゲートデザインパターンを使った連携
これでButtonクラスは画面に矩形を表示し、画面タッチに対してボタンのような反応をするようになりました。あとはボタンを押された時に反応する処理が必要なのですが、この処理をButtonクラスにそのまま組み込んでしまっては拡張性がありません。Button側はボタンが押されたという連絡だけを別のオブジェクトに通知するようにし、そちらで任意の処理をおこなうようにしましょう。
これには、ステップ02で学習したデリゲートデザインパターンが利用できます。
2.1 移譲用プロトコルおよび移譲先プロパティの準備
例えば-touchedというメソッドを持つプロトコル(ButtonDelegateと命名)を定義し、これを採用したオブジェクトをプロパティ(delegateと命名)に受け取れるようにしておき、タッチされた時は、このdelegateに-didTouchメッセージを送るようにしてみてはどうでしょうか?
↓Buttonとのデリゲートデザインパターンをおこなうために定義したプロトコル
protocol ButtonDelegate : class {
↓ボタンがタップされた
func didTouch()
}
class Button : UIView
この記事は会員限定です。会員登録をすると続きをお読みいただけます。
ログイン / 新規登録