Object-Oriented Design
オブジェクト指向な観点で設計するよ
私も よく分かってないよ
日本では「オブジェクト指向設計」や「OOD」と表現されるのが一般的だよ
簡単に書くよ
Object-Oriented Design(読:オブジェクト・オリエンテッド・デザイン)とは
いわゆる「オブジェクト指向設計(OOD)」のこと。
用語の中身としては
システム開発におけるやり方のひとつ
であり
「モノ」に注目して(オブジェクト指向
(「モノ」に注目した考え方)な観点で)設計すること
です。
詳しく書くよ
最初に留意事項です。
「オブジェクト指向設計」や「OOD」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
オブジェクト指向設計の英語表現が「Object-Oriented Design」です。
オブジェクト指向設計を「OOD」と表現することがあります。
この「OOD」が「Object-Oriented Design」の省略表現なのです。
※「Object-Oriented Design」を何となく日本語にすると「オブジェクト指向設計」となります。[詳細]
以上が「オブジェクト指向設計(OOD)」の意味を知っている人向けの説明です。
「オブジェクト指向設計(OOD)って何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

それでは、いってみましょう。
まずは予備知識として「オブジェクト指向」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
オブジェクト指向は「『モノ』に注目した考え方」です。
「どんなやつで、どう動く」に注目した考え方です。
例えば、そうですね。
あなたがシューティングゲーム(射撃ゲーム)を作ろうとしているとしましょう。
シューティングゲームの基本的な登場人物は
1.自分
2.敵
3.弾
です。
そして、それぞれの登場人物には「どんなやつ(属性)」と「どう動く(操作)」が設定されます。
例えば
・「自分」は3回「弾」に当たると爆発する(どんなやつ)
・「敵」は左に動ける(どう動く)
・「弾」の色は威力と対応している(どんなやつ)
などが「どんなやつ」と「どう動く」です。
あとは、用意した
1.自分
2.敵
3.弾
を組み合わせて、あれやこれやする処理を たくさん作ればゲームは完成します。
例えば
「1」の「3」が「2」に当たったら「2」が消える
(「自分」の「弾」が「敵」に当たったら「敵」が消える)
のような処理を必要な分だけ作り込めば良いでしょう。
ここまでを振り返ってみてください。
「自分」「敵」「弾」といったモノ(オブジェクト)に注目して、あれこれ考えていますよね。
このような考え方がオブジェクト指向です。
誤解を恐れずに言えば、オブジェクト指向のイメージは人形劇です。
人形劇をやるときは、まず人形を用意します。
そして、人形同士を関わらせることで1つの物語を作り上げます。
人形劇の中心は人形です。
物語は「人形に何をするか(どう動かすか)」によって決まります。
オブジェクト指向では、まずモノ(オブジェクト)を用意します。
そして、オブジェクト同士を関わらせることで1つの処理を作り上げます。
オブジェクト指向の中心はオブジェクトです。
処理は「オブジェクトに何をするか」によって決まります。
人形劇は、人形を用意して、その人形同士をあれこれすることで物語を作ります。
オブジェクト指向は、モノ(オブジェクト)を用意して、オブジェクト同士をあれこれすることで処理を作ります。
似ていますよね?
まずはオブジェクトを用意して、そのオブジェクトをあれこれしちゃうぜ!
なのがオブジェクト指向です。
以上を踏まえて
オブジェクト指向な観点でシステムを設計する
のが「Object-Oriented Design」です……多分。
上でも書きましたが、一般的には「オブジェクト指向設計」や「OOD」と表現されます。
某・資格試験の過去問に「OOA(Object-Oriented Analysis)」という用語が出てきたので、ついでに取り上げてみましたが、ぶっちゃけ、私もよく分かっていません。
大雑把に言えば「よーし!オブジェクト指向なプログラミングでシステムを作るぞ~。それに先だって、あれやこれやを設計するぞ~。いいか~。設計はオブジェクト指向でプログラミングする前提でやれよ~!オブジェクト指向でプログラミングしやすい形で、あれやこれやの設計をやるんだぞ~」な設計のやり方でしょうけどね。
具体的なことは他のところで勉強してください。
一言でまとめるよ
まぁ「Object-Oriented Design」って単語が出てきたら「オブジェクト指向設計
(オブジェクト指向な観点でやる設計)のことなんだな~」と お考えください。
おまけ
■訳してみるよ
「object(オブジェクト)」の意味は「物」とか「物体」とか「対象」とかです。
「oriented(オリエンテッド)」の意味は「指向」とか「志向」とかです。
「design(デザイン)」の意味は「設計」とか「デザイン」とかです。
何となく くっつけると
物体指向設計
となります。






