2

データベース設計のスキルを磨こうとしています。今日、私は IT 関連のいくつかのパズルに取り組んできましたが、そのほとんどはかなり簡単なものでした。…そして、私はこの「古い」と思われるものに出くわしました。

下図のクラス階層に誤りがあることが前提です。クラス/インターフェースの性質に関するこれ以上の情報はありません。論理的な問題は見つかりません。私ができる最善のことは、点は技術的には形ではないということです。

誰か提案があれば、ぜひ聞きたいです。それは本当に私の頭をやっています。

ダイアグラムはこちら

4

6 に答える 6

1

おそらく、質問は私たちにヒントを与えています:

クラス/インターフェースの性質に関するこれ以上の情報は提供されていません。

問題の実際の範囲(つまり、ビジネスロジック)に関する情報はまったくありません。「形状」は、グリッド上に描画される数学的表現である可能性があります。これは、ゲームエンジンモデリングプログラムの定義である可能性があります。それは人のフィットネスレベルの指標となる可能性があります。知るか?これらのバリアントはそれぞれ、クラス図とリレーショナルデータモデルの両方で異なる表現を必要とします。

意味的に間違っている可能性があるものについての仮定を立てるだけです。ただし、ダイアグラム自体の技術的な問題について観察することはできます。

問題は、矢印が間違った方向を向いていることです。ほとんどのクラス図では、継承は、基本クラスを指す矢印を持つ子クラスによって示されます。


この答えは無意味に見えるかもしれません。ただし、実際には、パズルの質問自体のジャブとして意図されています。実生活では、あらゆるもの(データベース、クラス図など)を設計することは、問題のビジネス固有のニーズを取り入れ、適切な設計上の決定を行うことです。ドメインについて何も知らなくても、私たちにできることは、デザインの意味的に間違っている可能性があることを推測することだけです。これは、かなり無意味なパズルの問題になります。

于 2011-02-16T20:25:04.283 に答える
0

私も困惑しています。私が思いつくことができる唯一のことは、Polygon と Ellipse が Point に従属している必要があるということです。

Polygon は 3 つ以上のポイントです。

Ellipse には 2 つの焦点があります。

これにより、Shape インターフェイスがポイントのリストまたは配列になります。

于 2011-02-16T18:56:05.200 に答える
0

Polygon クラスは冗長だと思います。長方形と正方形を分けなければならない特別な理由はありますか? さらに進んで、なぜ三角形と長方形を区別するのでしょうか? どちらも単なるポイントのリストと考えることができます。三角形は 3 つ、長方形は 4 つです。そして、あなたが自分自身に言及したことがあります。ポイントは実際には形状ではなく、おそらくそれがあなたが探している最も明白な答えです.

于 2011-02-16T18:50:49.687 に答える
0

あなたの質問はデータベースの設計に関するもので、ここに問題があると思います。クラス階層が深すぎるため、私の意見では、単一の形状クラスを使用してモデル化することができます。これは、すべてが同様のプロパティを共有しているためです。EG すべてにsideがあります。円は 1 個、三角形は 3 個、長方形は 4 個です。

クラス図自体に関する限り、点、多角形、楕円はクラスではなくインターフェースであるべきだと主張できると思います。

また、点が形ではないという他のコメントにも同意します。

興味深いことに、この質問はどこから来たのですか?

于 2011-02-16T19:05:14.447 に答える
0

これを厳密な数学的観点から見ると、 Point と Ellipse/Circle はConic Sectionsであり、同じクラスにあるはずです。それが求められている魔法の答えかどうかはわかりませんが、それは 1 つです。

それを拡張すると、Polygon はデータ モデルの一部ではない 3-N Lines で構成されます。

円、長方形、および正方形は多角形の単なる特殊なケースであり、リレーショナル データベース モデルでそれらを具体的に分類しなかったことを指摘する他の投稿者に同意します。これはオブジェクト モデルでは理にかなっているかもしれませんが、リレーショナル モデルではやり過ぎのようです。

于 2011-02-16T19:22:49.123 に答える
0

質問のあいまいな性質を考えると、これは円と楕円の問題の言い回しのように思えます。http://en.wikipedia.org/wiki/Circle-ellipse_problem .

基本的に、エラーは、スーパークラスで定義できない不変条件を持つサブクラスを定義することです。

  • 有効な正方形を定義するには、長方形では必要のない高さと幅の比率を維持する必要があります (一般的な場合)。
  • 同上(大まかに)円と楕円

Is deriving square fromrectangle は、Liskov の代入原則に違反していますか?での関連する議論

于 2011-02-16T20:46:14.477 に答える