0

これは、私たちが作成する種類の Web サイトに共通するタスクですが、クラスを設計する最善の方法がわかりません。アジャイル開発にかなり慣れていないので、悪い習慣を身につけないようにしたいと思っています。

私は、いくつかの国ごとにページを含む Web サイトに取り組んでいます。CMS を使用すると、ユーザーは各国のページのコンテンツ (タイトル、コピーなど) を変更できます。時刻表 (ダウンロード可能な PDF) を CMS で管理できるかどうかを尋ねられました。

Country クラスと Timetable クラスがあると仮定すると、(アジャイルの観点から) 何が一番良いでしょうか?

  1. 国クラスにプロパティを作成します。

public List<Timetable> Timetables

  1. Timetable クラスにプロパティを作成します。

public Country AssignedCountry

確かに、何が最善かは、その情報がどのように使用されるかによって決まります。前述のように、その国の時刻表を表示する各国のページがあります。ただし、すべての時刻表をリストし、理想的にはそれらの国を表示する時刻表ページもあります。

オプション 1 を使用すると、国ページに時刻表を簡単にリストできますが、時刻表ページの各時刻表には、割り当てられている国への参照がありません。

オプション 2 は、すべての時刻表を一覧表示し、関連する国を表示できるため、時刻表ページが簡単になることを意味します。ただし、各国の時刻表が不明なため、国のページはより扱いにくく、関連する時刻表を取得するには別の方法が必要です。

オプション 3? 時刻表は実際には国のプロパティではなく、同様に国は PDF ファイルのプロパティではないため、呼び出して取得できるメソッドを含む静的ユーティリティ クラス (ファクトリ?) を作成する方がよいと考えています。必要な情報 - 国別の時刻表、または国別の時刻表。DB の国と時刻表の関係は多対多であるため、これがより論理的な解決策のようです。

私たちのクライアントは通常、CMS により多くの機能を追加したいと考えており、通常、物事がどのように関連しているかを決定することは問題ではありませんが、この種のことは私を悩ませます。

私は物事を過度に複雑にしていますか?私が見逃している簡単な経験則やテクニックはありますか?

4

2 に答える 2

0

オプション 1 とオプション 2 が最適ではないことに同意します。おそらく最良の選択は、データベースを使用し、必要なものを 3 番目のクラスで読み取ることです。

もちろん、オプション 1 と 2 を併用することもできます。

Country では、表示する時刻表がわかり、Timetable では、表示できる国がわかります。

また、2 つのオプションのいずれかを強制的に使用することもできますが、そうすると、リストに少なくとも国のリストが必要です。時刻表を表示できます。

しかし、これはすべて、あなたが持っているオブジェクトの数に依存します。あなたが教えてくれないことです.

于 2012-10-10T11:43:03.440 に答える
0

それはいくつかの簡単な質問に帰着します...

  • 各時刻表は 1 つの国にのみ適用されますか?
  • 各時刻表は国に関連付ける必要がありますか、それとも自由に変更できますか?

各時刻表を 1 つの国に関連付ける必要がある場合は、国 ID を時刻表オブジェクトに入れ、結合を使用して SQL から選択して表示したくなるでしょう。答えが異なる場合は、これらのオブジェクトの完全な使用例を検討する必要があり、それによって答えが決まります。

于 2012-10-10T11:44:47.667 に答える