php5.4に触ってみたよ (2)

前回の続き。

そもそもtraitそのものを扱ったことがないのでこれを機にいろいろ試してみる。

まずはtraitを合体させてみるテスト。

traitは振る舞いの再利用だそうなので、振る舞い(メソッド)を単位でモジュール化出来る。
で、これを組み合わせて新しいtraitをつくることができて
しかもこれらは継承ツリーに縛られないので柔軟な設計ができますよ、と。

実際にそんなtraitをクラスに組み込んでみたテスト

想定通りですね。
javaらーで現ぺちぱーなのでtraitとか使ったことなかったんですが
これはうまく使えればいろいろ便利そうです。

というわけで

traitを使ったObserverパターン

traitはプロパティも含むことができるそう。
なので、traitを使って個々のListenerに依存しない通知部分(とclear部分)をNotifierとして実装してみた。
NotifierをuseするだけでuseしたクラスはObservableになり
Listenerの登録と、登録されているListenerへのnotifyが可能になる。
しかもNotifierは継承ツリーに縛られないのでいろんなクラスを横断的にObservableに出来ますね。
便利便利。