Google Androidで携帯アプリ設計 3

クラス図をプログラムに反映しよう!

クラス図をプログラムに反映しよう!

図3はMame Talkのソースコードの抜粋です。AbstractChatActivityクラスのonCreateメソッドとonResumeメソッドに注目してく ださい。onCreateメソッドは画面の初期化処理を行うイベントメソッドでイベントリスナーの設定や呼び出し元画面からパラメータを受け取って設定し ています。

このメソッドでは連絡先一覧画面からデータの表示に使う検索条件を受け取る必要があるのですが、チャットとグループチャットで検索条件が違うため、reflectExtras抽象メソッドを定義して処理を子クラスに委ねています(図3の13行目)。

onResumeメソッドは画面がアクティブになるたびに呼ばれるイベントメソッドで、表示データの取得やフォーカス処理を行っています。 表示データの取得はチャットとグループチャットで参照先が違うため、fillData抽象メソッドを定義して処理を子クラスに委ねています(図3の27行 目)。

このように親クラスで処理の流れを定義し、独自機能を抽象メソッドに切り出して呼び出せるので、子クラスは処理の流れを気にせず独自処理を実装するだけでよくなります。

今回は紙面の都合上、すべてのプログラムを紹介できませんでした。興味のあるかたは「SourceForge.JP: Project Info - Mame Talk」のWebサイトですべてのソースコードを公開していますので、ダウンロードしてください。

図3:Mame Talkのソースの抜粋
(画像をクリックすると別ウィンドウに拡大図を表示します)

クラス図はプログラムの構造を表すのに最適

図2と図3の例を見るとクラス図とプログラムが1対1で対応しているということが分かると思います。このようにクラス図はプログラムの構造を正確に表せるので、プログラムの整理に非常に役立ちます。

ただし、クラス図では処理の流れやどういったタイミングでメソッドが呼ばれているかまでは分かりません。Mame Talkのようにユーザとのインタラクション(やり取り)が多いアプリケーションでは、処理の流れが複雑になることがあります。このような場合、クラス図 でプログラムの構造を整理してから、シーケンス図で処理の流れを整理するとプログラムの見通しがよくなり、複雑になるのを防いでくれます。

さて次回はシーケンス図を使ってプログラムの流れを整理する方法を紹介します。

この記事をシェアしてください

人気記事トップ10

人気記事ランキングをもっと見る