MVCパターンに違反していると思われるものは、複数層パターンのものです。一般的なMVCアプリケーションでは、ビジネスロジックはコントローラーコードに属し、データベースプロシージャーには属しません。ただし、3層アプリケーションでは、一般に3つの層、インタフェース層、ビジネス層、および永続性層が必要です。そして技術的に彼らはそれを持っています。だから、MVCを適切にフォローしていないと主張するべきですし、せいぜい3層アプリケーションが実装されていないことがあります。
また、サービス指向アーキテクチャーを使用していないことを証明するための十分な詳細情報も提供していません(ただし、驚いていますが)。 SOAは、ビジネス・ロジックを構成する論理コンポーネントがどのように結合されているかに関係しています。それらが緩やかに結合されたものであり、異なるプロバイダの実装のために上下にスワップアウトされる場合、それらはSOAを持つでしょう。論理構成要素が大きな破損を引き起こすことなく互いに容易に分離できないような密結合が存在する場合、それらは結合しない。
ほとんどのビジネスロジックがデータベースプロシージャにある場合、はおそらくにはSOAはありませんが、わかりません。残りのビジネスロジックは、実際にこのパターンに従うかもしれません。
はい、springとspring-mvcを使用すると3つのレイヤーが可能です。しかし、すべての呼び出しがデータベース呼び出しで終了するので、中間層がプロキシ機能を実行しているように見えます。効果的に私たちはUIレイヤー→プロキシレイヤー[ビジネスレイヤー、データアクセス]→データベースoracle11gを見ています。これは3タイヤの用途にはまだ適していますか? Wrt SOA私は、複数の定義があることに同意します。 –
まだ複数の層がありますが、中間の統合層は単に完全に活用されていません。特に、ミドルウェアの統合を効果的にサポートできるUIアーキテクチャを使用する場合は、これらの層の細い線です。 J2EEとSpringの前に、すべてのミドルウェアロジックをコントローラサーブレットに組み込んでいました。奇妙なの?しかし、私はあなたのミドルウェア層が実際にオーバーヘッドになっていることをあなたの経営者に議論させることができると思います。 – Perception