3

最近のコースワークで最高の成績を収めるために、c++ と多層プログラミングを使用して特定のアプリケーションを開発するよう求められました。

多層アーキテクチャの背後にある理論と、このアプリケーションのどの部分がどの層に属しているかを正確に理解していますが、「n 層」アプリケーションを実際に実装した経験はありません。

階層を完全に分離する必要がありますか? たとえば、1 つのプロセスがデータベースを実行し、1 つのプロセスが UI を実行し、3 番目のプロセスが 2 つの間の対話を管理するなどでしょうか?

それとも、GUIがデータベースなどに直接アクセスしないように、アプリケーションをコードのレイヤーに分離するのと同じくらい簡単ですか.

C++ での多層プログラミングに関するヒントがあれば、大歓迎です :)

4

3 に答える 3

4

通常、「n 層」アプリケーション フレームワーク (大学で) と聞くと、論理的にグループ化された機能を指しています。別々のプロセスにある場合もありますが、必ずしもそうであるとは限りません。Model-Control-View アーキテクチャまたは MFC の Document-View アーキテクチャは、どちらも階層化されています。アプリケーションのビジネスルールからデータを保存/読み取るコードを、その情報の表示方法から分離したいだけです。

注:「n層」をクライアントサーバーのセットアップと見なす人もいますが、これはコースワークであるため、教授がそれを解決策として望んでいるとは思えません)。

于 2011-02-21T18:29:57.143 に答える
1

大学の教授は、現実の世界と実際には一致しない要件を持っていることがよくあります。成績にもよるので、先生に何を言っているのか聞いてみることを強くお勧めします。

現実の世界では、多層アーキテクチャと呼ぶために、物理的に層を独自のプロセスに分離する必要はありませんが、必要になった場合、そのように変更することは難しくありません。たとえば、ローカル データベースからリモート データベースに変更する場合、データベース レイヤーの実装のみを変更する必要があります。

于 2011-02-21T18:53:43.673 に答える
1

プロセス間の通信の 1 つの方法は、パイプを使用することです。もう 1 つは共有メモリです。さらに別のものは、boost の IPC です (いずれにせよ、IPC があることは間違いありません)。

たくさんあります。IPC (プロセス間通信) が主要な検索用語です。

于 2011-02-21T18:20:05.367 に答える