PHPのTRAIT(トレイト)

  • このエントリーをはてなブックマークに追加

PHPのTRAIT(トレイト)

知人にTRAIT(トレイト)を説明する機会があった。
トレイトは、PHPの多重継承禁止の制約を回避するためのもの。

例えばカレーうどんはうどんを継承してもよいが、カレーを継承してもよい気がする。
使用されているスパイスの一覧を取得する機能とかがあってもよさそうだ。

また、動物を継承した鳥クラスと乗り物を継承した飛行機は
機能がほとんど同じ飛ぶメソッドを持っているが、
インタフェースに処理は書けないため
鳥と飛行機のそれぞれに飛ぶメソッドの処理を記述しなければならない。

ここで、飛ぶメソッドの実装だけを切り出して
他のクラスから利用できるようにしたものがトレイトである。

以下サンプルコード

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す