我来自非计算背景,我很难全面了解MVC设计方法和框架.我"得到"代码重用,逻辑与显示分离,我"得到"封装和解耦,但我不明白.
目前,我只需将所有内容放在root中,为图像,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>
Run Code Online (Sandbox Code Playgroud)
..但是,通过页面控制器设计给我带来了什么真正的优势?除非它只是我编写的那种网站,否则我似乎总是发现控制器逻辑特定于视图,它不像一个控制器可以适合多个视图或者几个控制器可以输出到一个视图,那么什么是重点分开他们?
对我来说还没亮,任何指针?