Javaでシステム開発を行っていると、さまざまな場面でデザインパターンというものを使う機会があります。デザインパターンとは、 GoF(ギャングオブフォー)という有名な4人の人物が集まって作り上げた、いわばJavaプログラミングのベストプラクティスです。

ちなみにまったくの余談で恐縮ですが、私にとって、GoFは『花より男子』のF4(フラワーフォー:花の4人組) よりも断然いけてます。

さて、そのデザインパターンのなかに、Hollywood Principle (ハリウッドの原則)という興味深い名前のものがあります。

ハリウッドと聞いてしまうと、どんなにゴージャスなメソッドの表記方法なのだろうと期待してしまいますが、 実は非常に皮肉めいたエピソードによるネーミングだったりします。

ハリウッドは映画の聖地ですよね。そこで名を上げればどんどん仕事が舞い込んで来るようになり、社会的ステータスも急上昇です。 ですが、ハリウッドではプロデューサーの力は絶対です。俳優がどんどん売れっ子になっていったとしても、 やはりプロデューサーから声をかけてもらえなければ映画に出られない。それこそ、俳優の方からどれほどアプローチしたとしても、 プロデューサーにしてみれば、作品に合わない俳優はいりません。

そこで出てくる言葉がこれです。

「おまえが(俺を)呼ぶな、必要なら俺が(おまえを)呼ぶ」
(Don't call us. We'll call you)

これを地でいくデザインパターンが「ハリウッドの原則」なのです。

具体的には、十分なアーキテクチャフレームワークが定義されているようなシステムでは、 アプリケーション部分のロジックはフレームワークから呼ばれる形で実装していき、基本的にはフレームワークを中心にシステムを作り上げます。 アプリが基盤を呼ぶのではなく、基盤がアプリを呼ぶのです。

比較的堅牢なシステムを構築することができるアプローチですが、アプリケーションの実装に自由度が少ないため、 創造的なプログラマーからは嫌われているデザインパターンですが、このネーミングセンスに感心してしまいました。

デザインパターンはほかにも多くのものがあります。参考までにリストアップしておきますね。

CREATIONAL PATTERNS(生成パターン)
5種類

STRUCTURAL PATTERNS(構造パターン)
7種類

BEHAVIORAL PATTERNS(振る舞いパターン)
11種類

各パターンの詳細名は以下のリンクにすべて掲載しています。
→ http://it-ura.seesaa.net/article/102591023.html

著者紹介

吉澤準特 (ヨシザワジュントク)

外資系コンサルティング会社に勤務。守秘義務を破らない範囲でIT業界の裏話をつぶやきます。ファシリテーション、ビジネスフレームワーク、人材教育など執筆多数。日本能率協会、秀和システムそれぞれから書籍刊行。執筆依頼/インタビューお引き受けします。こっそりITIL Manager (v2)資格保有。

筆者ブログ「IT業界の裏話」

Twitterやってます

この記事は吉澤準特氏のブログ「IT業界の裏話」の過去記事を抜粋し適宜加筆・修正を行って転載しています。