〜Lv3_2_Javaの基本(リファクタリングLv2)ゲームループ付きツイートイントロダクション前回は、リファクタリングをするのに「オブジェクト指向」について少し触れました。世間巷でいう「オブジェクト指向」というものとちょっと内容が違うように感じた人もいるかもしれません。オブジェクト指向はこのように考えます。もの(オブジェクト)を大切にしましょう再利用できるものは再利用しましょう1クラスに1機能ここで「つまり。」というのを考える必要があります。オヴジェクト指向ちょっと、寄り道をしてオブジェクト指向的なプログラミングのサンプルを作成したいと思います。「百聞は一見にしかず」といったところでしょうか(笑)まずはメインメソッドとりあえずは、メインメソッドを作成します。標準入力を受けて無限ループする処理を作成します。「bye」と入力すると処理(アプリ)を終了する。まとめると以下のようになります。標準入力を受ける"bye"と入力すると処理を終了するこれは、メインメソッドを定義するためのいわば「メインクラス」とします。}}コマンド実行するここで「コマンド」を入力した時は、そのコマンドを実行するように作成します。イメージは下のような感じです。上に記載したクラスが、メインクラスですが、まだコマンドマップを設定(コーディング)していません。次のようなコードをフィールドに追加します。cmdMap;メインメソッドで呼び出すために、「static」修飾子をつけます。実装結果が下のコードになります。}}ビルドエラーが!そうなんです。このままだとビルドエラーが出ます。存在しないクラス(インターフェースクラス)が使用されていればビルドエラーが出ます。CommandIFインターフェースを作成インターフェースの作成方法に関してはこちらの記事もご覧ください。インターフェースクラス、抽象クラスの作成方法に関して記載しています。作成したものは下のようになります。インターフェースは、処理内容を書きません。execute();}インタフェースはメソッドの宣言のみなので、作るのは簡単なのです(笑)そして、コマンドを設定するためのマップをインスタンス化します。}}インターフェースの実相ここまできたらあとは、インターフェースの実相クラスを作成するだけです。今回は、helloコマンドとreadyコマンドを作成します。どちらもコンソール出力するだけのシンプルなコマンドです。helloコマンドは「HelloCommand」クラス、readyコマンドは「ReadyCommand」クラスに対応させます。}}どちらも、Eclipseでインターフェースのメソッドを自動生成したので、TODOコメントがついています。Eclipseの設定で出力しないように変更もできるので余裕があれば調べて見てください。下のようになりました。}}初めの実装とほぼ変わらないと思います。こんな感じで動きます。