てきとうな足跡
イラストやらバイトの事を書いている大学生のブログ
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Interface
見た目とかの外見の話じゃなくて、システム的な話。
正直自分もよく分かってないので、勉強中です。

アプリケーションプログラミングインタフェース(wikipedia)

よく聞くもの、使ってるものでは、
・キーボードとかの入力周りにKeyListenerやmouseListener。
・一定時間毎に実行する動作にRunnable。
・外部にメソッドを公開するため使う(Application Programming interface)
(Slick2dで言えば、BasicGameのinit, update, render, getID メソッド)

さて、それ以外の自作のインターフェースはどうやって使うのか?
どういう時に使うと便利なのか。という疑問が。


色々調べた所、プレイヤーと何かが当たった時の処理を書くのに便利ということが判明。
コード:stackoverflow - switch instanceof?
http://stackoverflow.com/questions/5579309/switch-instanceof

今までは、「Javaでゲームを作りますが何か?」の
マリオ風アクション->コインの実装のやり方で、

//メインクラス
if(obj instanceof 敵クラス) { 敵に当たった時の処理(); }
if(obj instanceof アイテム) { アイテムを取った時の処理(); }
if( ... )


という感じで書いていましたが、インターフェースを使うと、

//インターフェース
interface IHit() { void hit(); }

//メインクラス
obj.hit();

//敵クラス
@overrides
public void hit() {
//プレイヤーと当たった時の処理;
}

//アイテムクラス
@overrides
public void hit() {
//プレイヤーと当たった時の処理;
}

と書き換える事が可能。

また、新しく触れたら回復するオブジェクトを実装しようと思った場合、
従来は、追加オブジェクトの作成と、メインクラスの修正を行いますが、
新しい方は追加オブジェクトクラスだけ作成で済みます。
実装が楽になるだけでなく、思わぬバグの発生等も抑えられそうです。

デザインパターン凄い。
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。