もっと Lambda その13

Java

今日のエントリーも「もっと Lambda」シリーズです。

今回はよく使われるデザインパターンで知られている Factory Method pattern を Java8 を使ってコーディングしてみます。

ちなみにこのネタは海外のサイトで紹介されていたものです。

それを少し変えて写経しただけですが随分シンプルになるので感激です。

それでは現在の Java だと下記のようになります。

Factory Method pattern でよく見かける典型的なサンプルですね。

インスタンスの生成をサブクラスに任せることによって柔軟に生成するインスタンスを選択することを可能としています。

では Java8 ではどのようなコードになるのでしょうか?

Java8 では抽象化クラス AirplanePilot とそれの具象化クラス二つが必要とされません。

その代わりに、Java8 の新機能の Default methods ( Virtual extension methods ) を実装したインターフェイスを利用します。

実行結果はどちらも次のようになります。

I pilot a new airplane.
ジェット機を操縦します。
ジェット機を整備します。
I pilot a new airplane.
戦闘機を操縦します。
戦闘機を整備します

実にシンプルで綺麗なコードで Factory Method pattern が実装できてしまうんですね!

Hatena タグ: