私は非コンピューティングのバックグラウンドから来ており、私はMVCの設計アプローチとフレームワークについて一般的に頭を下げることに苦労しています。私はコードを再利用し、ロジックからディスプレイを分離し、カプセル化とデカップリングを「取得」しますが、私はこれを知りません。Coldfusion、ページコントローラ上のフロントコントローラデザインの利点は何ですか?
現時点では、私は単純にイメージのための別々のサブフォルダ、つまりcfcsと_includesをすべてルートに置いています。すべてのデータベースとの対話はcfcs経由です。私はページの上部ですべての処理を行い、次にコメント行を表示し、その下にページレイアウトを表示します。
私が見てきたフレームワークのほとんどはフロントコントローラーを好むようですので、トップコントローラーMVCデザインの私の単純なバージョンは、cfcs、コントローラー、ビューのサブフォルダとなり、index.cfmの大きなswitch文
<cfif not IsDefined("URL.event")>
<cflocation url="index.cfm?event=home" addtoken="No">
</cfif>
<cfswitch expression="#url.event#">
<cfcase value="home">
<cfinclude template="controllers/home.cfm"/>
<cfinclude template="views/home.cfm"/>
</cfcase>
<cfcase value="about">
<cfinclude template="controllers/about.cfm"/>
<cfinclude template="views/about.cfm"/>
</cfcase>
</cfswitch>
..実際のところ、私はページコントローラーのデザインを教えてくれますか?私が書いたサイトのようなものでない限り、コントローラのロジックはビューに固有のものであることがわかります。コントローラが複数のビューに収まるか、複数のコントローラが1つのビューに出力できるようにはならないので、それらを分離する?
光がまだ私のために来ていない、どのポインタ?
OKを完全にカプセル化されるように設計する必要があり、そのサービスレイヤことを受け入れること。しかし、URL書き換えの問題を除けば(Webサーバーではこれをやっていないと仮定します)、フロントコントローラーはページコントローラー上でどのような利点を提供しますか?それは私には、コントローラのページのトップの代わりにエディタで開く別のファイルのように見える、ページの一番下を見る。 – Saul
@Saul:私の更新を見てください。 – orangepips
そのMSDNは、特に、プロセスオーケストレーションと呼ばれるものの周りに良いです。それは私が複数ページのフォームで見つけた問題です。 – Saul