2010-12-28 8 views
0

(javaまたは*)アプリケーションのN層、MVCアーキテクチャがあるとします。論理的で管理しやすいアプリケーションコードのパーティショニングのために、MVCを選択しました。 多くのフレームワークやツールがあるため、レイヤー(MまたはVまたはC)を特定のテクノロジに結びつけたくないので、後でアップグレードしたり、さらにはアップグレードするための自由度を維持したいと考えています。他の部品との統合Model View Controller(MVC):モデルとデータ型

すべてのシナリオで、モデルには、プリミティブなデータ型(Int、Stringなど)、またはクラスの形式のより高度なもの(最大の複雑さのためのオブジェクト指向の機能)が含まれます。あなたはそれに対処する方法を :

  • することができますようにPOJOとして、あなたのモデルを維持し、それがデータ入力と検証についてほとんどであることから、VまたはC層でタイピングを実現します。このように、あなたのモデルが他の場所で使われていることを心配する必要はなく、DALでもほとんど変わりませんが、あなたのモデルを豊富なモデル(豊富な種類)に変換するために余計な努力をしなければなりません。ストレージからビューに転送するとき
  • モデルで他のネストされたモデルとしてタイプをサポートし、それに対処するためにVレイヤーまたはCレイヤーのトリックを実装できるようにするには、各レイヤーがちょうどgetterとsetterを使用します。しかし、この方法では、モデルコンプレックスを他の技術的な設定に保ちます。
  • [他の上記またはなし]

答えて

1

私はあなたが完全に分散を行きたいならば技術は無関係だと思います。私は簡単にクラスターを作成してから、JSON over HTTPのような標準化された通信フォーマットを選択できる、各レイヤーごとに別々のアプリケーションを作成します。

JSONはあなたが好きなように単純または複雑になると、それは内蔵のためのサポートをそこに持っているからほとんどすべての言語することができます。

HTTPは、迅速かつ簡単に、かつ拡張するのは非常に簡単です。

ちょうど私の2セントです。

+0

OKなので、標準化されたコミュニケーションのために、Modelはできるだけシンプルになります。結局のところ、維持するのが最も難しい部分です! –

+0

それは本当にあなたが構築しようとしているアプリケーションの種類に依存します。 DBはほとんど常にボトルネックであり、はい、維持するのが本当の苦痛かもしれません。しかし、どのシステムもあるレベルで維持されなければならない。私はまだクエリを簡略化するためにいくつかの並べ替えのORMフレームワークを使用することをお勧めしますし、関連するテーブルのインデックスを最適化するためにすべてのクエリを分析する...私は前にこの種の極端に分散されたアプリケーションを構築したが、達成する。 パフォーマンスが問題であれば、数バイトを節約するためにプレーンテキストのJSONではなくバイナリJSONを常に見ることができます。 – Johandk

+0

また、JSONのようなものを使用する大きな利点は、すべての層を通して標準化されたままであることです。 DB側では、結果セットをテキストに変換するだけです。コントローラー上で操作が非常に簡単です。ビュー上では、かなりファンキーなJavaScript処理も実行できます(Webアプリケーションの場合) – Johandk

関連する問題