1.まず、プログラムの目的を考える。 → 抽象的目的の具体化を始める
2.必要な結果が最終的に何であるかを考える。→ 結果用変数の用意
3.その結果を得るために必要な処理と材料(値)は何であるかを考える。 → 材料を変数、処理をメソッドで表す
4.材料から結果を得るために必要な処理を図で表現してみる。 → 変数の使用法の具体化
5.その処理の中から似たようなことができそうなセクションに切り分けする。 → 変数の分類、メソッドのカテゴリ化
6.切り分けたセクションをクラスなどにまとめる。 → クラスの生成
7.クラスの役割が同じ場合は、抽象的にまとめたクラスにする。 → クラスの継承
8.多数継承する必要がある場合やクラスの役割の大部分は同じだが違う部分がある場合に統一する。 → インタフェースの作成
表にまとめると以下のようになる。
|
現実(的)世界 |
プログラミング世界 |
1 |
個々の物体(オブジェクト) |
インスタンス(newで生成するもの) |
2 |
個々の物体の特徴 |
属性(変数) |
3 |
個々の物体の振る舞い |
メソッド |
4 |
2と3をまとめたもの |
クラス |
5 |
個々の物体の同じ役割をまとめ、違うところだけを取り上げる |
継承 |
6 |
使い方を書いたマニュアルの目次みたいなもの |
インタフェース・抽象クラス(一部中身の記述あり) |
7 |
実際にどう動作するか書かれたマニュアルの中身 |
実装クラス |
※オブジェクトとインスタンスの違いについて:
どちらも実体を表しほぼ同義に扱われることも多いので、私も具体的にどう違うのか表現することは難しいが、
メモリ上のデータとして具体的な実体を指すことをインスタンス化と呼び、実体を指したものがインスタンス。
インスタンスによって生成された実体そのものがインスタンスオブジェクトといった所だろうか。
最終更新:2011年04月03日 17:35