1

私は最新のプロジェクトを開始しようとしています。これは基本的に、データベースからデータを取得し、そのデータをグラフに表示するアプリケーションです!

これは簡単に思えるかもしれませんが、オブジェクト指向プログラミングに関しては、これが非常に正しい方法で行われることが重要です。

今、私の考えは次のとおりでした:

次の4つのクラスを作成したかった:

アダプタ:

アプリケーションをデータベースに接続し、データを受け取るクラス

コールキュー:

これは、データベースから受け取るデータの種類と、グラフに表示するデータの種類によって異なるオブジェクトです。この例は、チーズと果物です。どちらも食品ですが、非常に異なる種類の食品です。

統計学

これは、データベースから受け取った情報を計算するために使用されるツール クラスです (たとえば、生データの代わりにパーセンテージに変更します)。

グラフ

これは、統計クラスから情報を取得し、数値をグラフに変換するクラスになります。

GUI

これはもちろん、グラフを投稿する GUI クラスです。

今、私はプロジェクトを可能な限りオブジェクト指向にしたいと考えています。しかし、私の問題は、データベースからの情報が常に同じとは限らないことです。たとえば、データを日ごとに取得する場合、月ごととは異なります。これは、ユーザーのニーズに応じて情報が常に変化することを意味します。

このプログラムをオブジェクト指向にするにはどうすればよいですか? そして、最もアクセスしやすいようにするために、クラスが互いにどのような接続を持っている必要がありますか。単純化するためにサブクラスを作成する必要がありますか?

データベースからのすべての情報を直接 CallQueue クラスに追加する必要がありますか、それとも後でそのオブジェクトを作成する必要がありますか?

更新 - 詳細

callQueue という名前はストリーミングの実装ではなく、データベースから受け取ったデータの値を格納する必要のあるオブジェクトにすぎません (これはまだ構想段階にあり、何も実装されていないことに注意してください)。アイデアは、ユーザーがプログラムを開いてから、たとえば 2012 年 4 月 11 日から 2012 年 10 月 11 日までの 1 日を選択するというものです。オブジェクトの値が変更される理由は、日が次のように変更された場合です: 04/11/2012 - 04/12/2012 の場合、新しいグラフが作成され、データベースからの新しい情報が計算されます。

同様に私が混乱していることの1つは次のとおりです。データベースから作成されたオブジェクトがある場合(アダプターは、より良いアイデアがあれば最適化できることに注意してください)、そこからどのように統計を計算しますか?統計クラスがデータ用アダプターを呼び出してデータを操作し、計算されたデータを含むオブジェクトを作成した方がよいでしょうか?

次に、Graph クラスはオブジェクト データを取得し、グラフに挿入する必要があります。

4

1 に答える 1

2

大規模なシステムやさらに小規模なシステムを設計した経験から、最善のアプローチは、クラスではなくコンポーネントの観点から考えることです。これにより、問題をより小さな (そしてほとんど独立した) 断片に分解することができます。

たとえば、データをアプリケーションに渡して処理することだけを担当するコンポーネントがあるとします。そのコンポーネントは、複数のデータ ソースなどを処理できる必要があります。これは、アプリケーションの残りの部分から独立して設計できるサブシステムになり、全体よりも小さな特定の問題を処理します。

サブ問題がまだ必要以上に大きい場合は、コンポーネントの実装がほとんど自明になるまでサブコンポーネントに分割し続けます。その時点で、システムの主役について十分な可視性が得られるため、クラスの概念を取り入れ始めることができます。

要するに、私は関心の分離に非常に重点を置いています。サブ問題をサブコンポーネントに分離することで、ソリューションも分離できるため、システム全体に影響を与えることなく、設計ミスの修正や実装の置き換えが容易になります。

ちょうど私の2セント...

于 2012-10-29T13:24:29.200 に答える