|
IT総合情報ポータル「ITmedia」 |
ITとビジネスのニュース専門サイト「ITmedia News」 |
企業のためのIT情報サイト「ITmedia エンタープライズ」 |
IT製品導入支援サイト「TechTargetジャパン」 |
経営者とCIOのコミュニティー「ITmedia エグゼクティブ」 |
PCとMacの専門サイト「ITmedia +D PC USER」 |
携帯、スマートフォンの専門サイト「ITmedia +D Mobile」 |
電子書籍の専門サイト「ITmedia eBook USER」 |
デジカメの専門サイト「ITmedia デジカメプラス」 |
AV機器の専門サイト「ITmedia +D LifeStyle」 |
旬なモノネタ「ITmedia ガジェット」 |
ニコ生、Ustreamの動画番組表「ライブガイド」 |
ビジネスブログ・メディア「ITmedia オルタナティブ・ブログ」 |
ちょっと気になるネットの話題「ねとらぼ」
BREW プログラミング入門(3)
|
|
今の段階ではすべてを理解する必要はありません。アプレット構造体は、クラスIDとイベント ハンドラのほかに、いくつかの変数を持つことが分かります。
おそらく、AEEClsCreateInstance()関数内でAEEApplet_New()関数を呼び出すと、これらのメンバ変数が初期化されるのでしょう(AEEApplet_New()関数の実装はAEEAppGen.cで定義されています。特に知る必要はありませんが、余力のある方は覗いてみましょう)。
IShell、IModule、IDisplayなど、先頭に"I"がつく型は、"インタフェース"と呼ばれる構造体です。BREWプログラミングでは、この "インタフェース" を理解することが基本となります。
オブジェクトとインタフェース関数
BREW APIは、"オブジェクト" に作用する "インタフェース関数"として提供されます。難しい言葉が出てきました。"オブジェクト" とは何でしょうか?"インタフェース関数" とは何でしょうか?
何も難しくありません。BREWのオブジェクトとインタフェース関数について話す前に、C言語のライブラリの一般的な設計についてお話します。
例えば、C言語で書かれたリンクリストのライブラリを考えてみましょう。そのライブラリは、リンクリストを表す構造体と、その構造体を操作するための関数を提供しますよね。

このようなデータ構造体のことを、BREWでは"オブジェクト"と呼びます。また、データ構造体を操作する関数を"インタフェース関数"と呼びます。
このように、プログラムをデータ構造体とそれを操作するための関数として整理し、設計することを、「オブジェクト指向プログラミング」といいます。C++やJavaを習得している方であれば、すでにご存知ですよね。BREW APIはC言語でオブジェクト指向設計されたAPIなのです。


BREWでは、データ構造体とインタフェース関数をまとめたものを、"インタフェース"と呼んでいます。

BREWの "オブジェクト" のことを、"インタフェース オブジェクト"と呼んだり、"インスタンス"あるいは "インタフェース インスタンス"と呼ぶこともありますが、すべて同じ意味です。
BREWの"オブジェクト"は、JavaやC++のオブジェクトとほぼ同じであり、BREWの"インタフェース"は、JavaやC++のクラスとほぼ同じです。
具体例で説明しましょう。BREWプログラミングで必ず使用するインタフェースとして、"IShellインタフェース"があります。IShellオブジェクトとはまさにBREW実行環境を表現したデータ構造体であり、IShellインターフェイスはBREW実行環境を操作するための関数群です。

例えば、BREWが実行されている携帯電話端末の画面サイズを取得するには、次のようにします(AEEDeviceInfoは、携帯電話端末の情報を格納するための構造体です。詳細は「BREW APIリファレンス」を参照してください)。
|
別の例を挙げましょう。BREWで描画を行うためのインタフェースとして、"IDisplayインタフェース" が用意されています。このインタフェースは、線を描画したり、四角形を描画したり、描画する色を設定するための関数群を持ちます。

例えば、画面に赤い枠を表示するには、次のようにします。
|
ここで MAKE_RGB(red, blue, green) は、赤青緑の三原色から色を表す数値(RGBVAL型)を作成するマクロです。BREWでは色をRGBVAL型で表現します。
また、AEERectは長方形を表す構造体で、次のような宣言になっています。
|
BREWのインタフェースについて理解が深まったでしょうか。インタフェースといっても特に難しいことはなく、昔からC言語プログラマーがやってきたことに新しい名前を与えただけなのです。
[倉谷智尋, ITmedia]
Copyright© 2012 ITmedia, Inc. All Rights Reserved.
前のページ | 1/3 | 次のページ
最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!
ドスパラ通販は最短当日出荷!
新商品でもお待たせしません!
さらにパソコンは送料無料!!