今回はObserverパターンについて書いていきます。
デザインパターンとは
デザインパターンとはソフトウェア開発の設計方法の事です。
『オブジェクト指向における再利用のためのデザインパターン』という本が出典で、全部で23種類のパターンが紹介されています。
Observerパターンとは
Observerパターンとはオブジェクト同士のメッセージのやり取りに関するデザインパターンです。
このパターンではSubject
とObserver
という2種類のクラスとそのサブクラスが出てきます。
それぞれのSubject
に対してObserver
を追加し、開発者はSubject
のnotice
メソッドを呼べば全てのObserver
に対してメソッドを送ります。
SwiftでのObserverパターンの実装方法
SwiftでのObserverパターンは下のように実装します。
NSNotificationCenter.defaultCenter()
がSubject
に相当して、self
がObserver
にあたります。
func method() { NSNotificationCenter.defaultCenter().addObserver( self, selector: "methodName", name: "NotificationName", object: nil) NSNotificationCenter.defaultCenter().postNotificationName( "NotificationName", object: nil) } func methodName() { print("Called") } method()
本来のObserverパターンではObserver
は通知受け取りメソッドを持つ共通インターフェイスが必要なのですが、Swift
の場合はObserver
登録の際にメソッド名も併せて登録するので共通インターフェイスが不要になっています。
Subject
も本来は通知の種類分必要なのですが、addObserver
でキーを指定する事でSubject
はNSNotificationCenter.defaultCenter()
のみとなっています。
- 作者: エリックガンマ,ラルフジョンソン,リチャードヘルム,ジョンブリシディース,Erich Gamma,Ralph Johnson,Richard Helm,John Vlissides,本位田真一,吉田和樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 1999/10
- メディア: 単行本
- 購入: 21人 クリック: 711回
- この商品を含むブログ (210件) を見る