2016-10-24 4 views
0

私は割り当てに従ってクラス図を作成しましたが、これは正しい方法ですか?私はColumn classについては特に分かりません。なぜなら、それは変わる可能性があるからです。広告システムのクラス図

あなたはそれらを分析することが可能となり、 をいくつか 異なる広告システムからデータをロードして、データベースにデータを格納するアプリケーションを構築しています。あなたはすべての広告システムは、レポートの異なる 構造を有することを心に取る必要がある

:広告システムとは異なり、指定したカラム、 列の異なる順序、異なる日付形式もデータが 異なるデータ形式(JSON、CSV、ですXML)、各システムからの

レポートの列の異なる量が含まれている、私たちの アプリケーションは、それらのいくつかに興味がある:日付、ad_campaing、 広告グループ、キーワード、感想、価格(すべてのシステムでは、彼らは 別の名前を持っています)

広告アカウントのロジックは、1つの広告キャンプに の複数の広告グループが含まれ、1つの広告グループに複数のキーワードが含まれていることです。

enter image description here

+1

どのようなクラス図を作成する必要がありますか?ドメインモデル(問題ドメイン内のエンティティを記述する)、ソリューションの概念モデル(ユーザーが理解しなければならない概念の点で)、ソフトウェアのモデル(ソースコードで定義されるクラス)、モデルターゲットデータベースの....? –

+0

さて、私はオブジェクト指向の設計をしていますが、これは読みやすくて、コードや疑問をつけて私の質問を投稿するたびに、無視されました/ downvoted。だから少なくとも、この図ではアプリケーションの構造が良いかどうか分かっていれば十分です。私が間違っていなければ、オブジェクト指向設計をそれからコードに書き直すだけで済むはずです。 – rtom

+0

OK、私はあなたが作るソフトウェアの設計モデルを作る必要があると仮定します。私はターゲット言語がJavaやC#のようなオブジェクト指向言語だと仮定します。レポートの汎用インターフェースと、特定のタイプのレポートごとのアダプター・クラスを設計する必要があると思います。特定のレポート・タイプをロードするために、各アダプター・クラスは汎用インターフェースを実装します。 –

答えて

1

私はあなたがオブジェクト指向言語を使用して書き込まれるソースコードをモデル化するためのクラス図を作成する必要がありますと仮定します。私は最良のアプローチは、それぞれの特定のタイプのレポート(つまり、異なる広告システムごとに)のアダプタクラスを作成することだと思います。個々のアダプタ・クラスは、特定のレポート・タイプをロードするために汎用インタフェース(または抽象基本クラス)を実装します。ここに私の図があります。私は3つのアダプターを描いていますが、多少の違いがあります。

enter image description here

あなたは複数の広告システムは、例えば、共通のフォーマットでデータを配信することを期待していた場合CSVでは、列名のみが異なりますが、構成ファイル(または構成オブジェクト)から列名のマッピングを読み取る汎用のCSV_ReportLoaderを作成できます。

+0

私はそれをコードに変換しようとしましたが、いくつか質問がありました。これは私の最初のOOPプロジェクトなので、OOPプロジェクトを構築するときに何を目標にするべきかはわかりません。なぜなら、機能だけを考慮すれば、それほど難しくはありません...しかし、あなたのアプローチでは、すべての新しいAd_systemの新しいクラス(私のソリューションでは、新しいオブジェクトをインスタンス化するだけで済みます)、 'loadAdData'もすべてのクラスで同じ実装をするでしょうから、' ReportLoader 'にそれを実装して継承するのは意味がありませんそこから。 – rtom

+0

OOPが間違っているかどうかは分かりませんが、たとえば、私のソリューションでは、データのフォーマット(JSON、XML、CSVの場合)を見つけることができるクラスがあります。 ?後でクラスを再利用できるように知っていますか?私はそれが個々の部分が再利用できるようにそれが最小の部分に分割されるべきだと思うので、そうであってはいけませんか? – rtom

+0

広告システムのデータは、異なるデータ形式(JSON、CSV、XML)です。 –

関連する問題