オブジェクト指向の手本、デザインパターン

2009年5月12日(火)
清水 英雄

デザインパターンはUMLでイメージを定着させる

 UMLは、オブジェクト指向のさまざまなものが表現できます。デザインパターンの場合は、UMLの1つであるクラス図を用いて、プログラムの構造を視覚化することができます。視覚化されたものはシンプルな形をしていますので、クラス設計のときに「ここはこのパターンのイメージが的確ではないか?」と、すばやくイメージできるようになります。コードで理解し、UMLで視覚化されたものを覚えておく。これが、デザインパターンを速習するためのコツなのです。

 デザインパターンは、クラスの構造とその関連に意味を持たせる場合がほとんどなので、UMLなどでその構造を視覚的に覚えておけば、プログラマー間での理解も進み、実践でも利用しやすいものとなるでしょう。UMLをまだ知らない場合は、これを機会に学習してみてはいかがでしょう。オブジェクト指向を多方面から記述できるこの優れた言語は、今後のプログラミングにきっと大きく役に立つはずです。

 では、実際のパターンを見ていきましょう。今回は生成に関するパターンからFactoryMethodパターンを説明します。

FactoryMethodパターン<生成物を間違わないように>

 FactoryMethodパターンの特徴は、下記の2点です。
1.オブジェクトの生成はサブクラスに委ねる
2.間違ったインスタンスが作成することがないようにできる。

 では、どのようなふるまいをするのか、本文末のサンプルコードを見てみましょう。

 人が物を作成するという事例で考えてみます。実際にできあがる物はケーキとおすしです。この2つは生成物クラスでまとめることができます(生成物の抽象化)。そして、この抽象化された生成物からの派生物として、具象生成物(ケーキやおすし)が定義できます。

 次に人について考えます。今回は、作成者クラスという枠で考えていますが、この作成者クラスでは生成するものはまだ決めることができません。 しかし、作成者クラスは、具象生成物を作るという操作(メソッド)は定義しておきます。 ケーキ職人クラス、すし職人クラス(具象作成者)は、この作成者クラスを継承した派生クラスで定義します(作成者の抽象化)。

 実際の物(生成物)を生成するのは、職人を継承した派生クラス(ケーキ職人クラス・すし職人クラス)が担当します。FactoryMethodパターンは、作成者(具象作成者)に実際の製品(具象生成物)の生成を任せます。

Rarestyle
MR(医薬情報担当者)・微生物研究員を経て、化学系会社にシステム担当として従事し、システムマネジメントやインフラ整備などを行う。微生物研究員時代から数値解析など通じてプログラミングを学び、現在、Webサイト「Rarestyleへようこそ(http://www.rarestyle.net/)」を立ち上げ、パソコンコミュニティー活動・人材教育にも力を入れている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています