No.1ベストアンサー
- 回答日時:
UML以前の問題だろう。
UMLは、君が決めたクラス図を誰が見ても分かるように表現するためのものだ。列車という概念をクラスにするときにどう分けるかは君が決める事だ。
クラスだけを作ってもしょうがない。最終的にどんなシステムに組み込むクラスなのかが分からなければ、どちらが良いとは言えないな。
なので「~~~~を作ろうと思います。列車を表すクラスを作りたいのですが、AとBとどちらが良いでしょうか。」という質問ならありだろう。
何の情報も無い時点での話だが、私なら、喫煙・禁煙はクラスの変数にして、グリーン車など列車の種類は派生クラスにするな。
禁煙車と喫煙車が列車の「振る舞い」を継承するとは思えない。
例えば別に人間クラスがあったとして、列車クラスは乗る、降りるなどのメソッドを提供できると思うが、普通車やグリーン車はこのメソッドを継承するのに適していると思う。また、寝台車は乗る降りるを継承しさらに寝るというメソッドも追加できそうだ。
ご解答ありがとうございます。
おっしゃるとおりですね…
間抜けな質問になってしまい、申し訳ありませんでしたm(_ _;)m
>なので「~~~~を作ろうと思います。列車を表すクラスを作りたいのですが、AとBとどちらが良いでしょうか。」という質問ならありだろう。
これは、客が申込書を書いて、キップを購入するという(漠然とした)プログラムです。申込書には列車名や乗車駅、降車駅などを記入する欄が含まれ、その列車にはさきほど書いたグリーン車や、喫煙等の種類があります。申込書クラスの属性に列車名やグリーン車などの分類を書くのを大変かなと思い、列車というクラスを作ってそれからの話だけを取り出して質問してしまいました。
>何の情報も無い時点での話だが、私なら、喫煙・禁煙はクラスの変数にして、グリーン車など列車の種類は派生クラスにするな。 ・・・以下略
これも大変参考になりました。anmochiさんのアドバイスを踏まえ、もう少し考えてみようと思います。
No.3
- 回答日時:
> これは、客が申込書を書いて、キップを購入するという(漠然とした)プログラムです。
申込書には列車名や乗車駅、降車駅などを記入する欄が含まれ、その列車にはさきほど書いたグリーン車や、喫煙等の種類があります。ならばそれらは列車ではなく車両もしくは座席に付与される属性ではないかしら?
>ならばそれらは列車ではなく車両もしくは座席に付与される属性ではないかしら?
なるほど、そういう考えもあるんですね。
参考に致します。
ご回答ありがとうございました。
No.2
- 回答日時:
オブジェクト指向の偉い人の書いた本を見ると
「クラスの作成には正解はない。
自分で考えろ」
と書いてあります。
私も、オブジェクト指向を人に教える立場の人間ですが、
「何が正解」かを判断することはできません。
正解はないのです。
その時々の事情によって、クラスの妥当性を判断するしかありません。
今回の問題については、
サブクラスにする方法と、
プロパティにする方法の、どっちも有りでしょう。
>正解はないのです。
なるほど、たしかに言われてみるとその通りですよね。。
同じ処理をするシステムを作るにあたっても、星の数だけプログラムがあるというように、クラス図も人によって違うものができてしまうものなのですね。大変参考になりました。「答えが無い、自分で考える」というのは(わからない問題にぶつかったときはまっさきに答えを見てから理解する勉強をしてきたせいもあって)私のすごく苦手とすることなのですが、少しずつクラス図をはじめとするUMLに慣れていければと思います。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の重複する値とその個数を...
-
1 つのヘッダファイルに複数の...
-
3年間同じクラスになる確率
-
main()を持つクラスが2つ以上...
-
共通で使う関数を集めたクラス...
-
正規表現を使った小数入力チェ...
-
IPアドレスの3バイト目の呼び方
-
eclipse でクラスに色
-
EclipseでJSPのコンパイルエラー
-
java eclipse 型に解決できません
-
[C++/CLI]可変個引数について
-
dllと同じプロジェクトにする方法
-
複数のクラスで共通した関数を...
-
同じパッケージ、クラス名が含...
-
クラスのプロパティに構造体を...
-
A・B・Cクラスとは?
-
クラス名の「~Factory」って何?
-
VBAもしくはVB6:クラスの中で...
-
数学の計算問題。 3年間同じク...
-
FunkctionとMethodの違いについ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の重複する値とその個数を...
-
どこからも呼ばれていない無意...
-
java eclipse 型に解決できません
-
「天声人語」をインターネット...
-
main()を持つクラスが2つ以上...
-
1 つのヘッダファイルに複数の...
-
IPアドレスのクラスAを取得して...
-
同一パッケージにあるクラスが...
-
同じクラスにならない確率を教...
-
重複エラーを解決するには
-
共通で使う関数を集めたクラス...
-
3年間同じクラスになる確率
-
複数のクラスで共通した関数を...
-
同じパッケージ、クラス名が含...
-
A・B・Cクラスとは?
-
自作のクラスファイルがインポ...
-
ATLとMFCの違いは何でしょうか?
-
eclipse でクラスに色
-
コンボボックスのマウスホイー...
-
UMLのクラス図はmain()も含むん...
おすすめ情報