`

企业架构之页面控制器

阅读更多

前端控制器博客中说到前端控制器比较复杂,不适用于相对的小项目,那如何以最佳方式为适度复杂的WEB应用程序构建控制器,从而既能避免代码重复,又能实现重用性和灵活性?

 

 

一、概念

Page Controller很简单,就是接受来自页面请求的输入,调用请求对模型执行操作以及确定应用于结果页面的正确视图。分隔高度逻辑和所有视图相关代码。

 

 

二、为什么要用页面控制器?

其实这个问题已经说了,就是开头说的,为了简单快速地构建控制器。控制逻辑与一个或多个视图相关联。

 

 

三、实现页面控制器

页面控制器最简单实现就是将控制逻辑放在视图中。

假设现在有个friendList的请求,其具体代码实现如下:

<?php
//加载friend模型
require_one("friend.php");
try{
    //获取friendList
    $friendList = friend::findAll();
}catch{Exception $e}{
    include('error.php');
    exit(0);
}

<html>
<head>
<title>friendList</title>
</head>
<body>
<h1>friendList</h1>
<?php foreach($friendList as $friend):?>
<?=$friend->getName();?><br/>
<?php endforeach;?>
</body>
</html>
?>

这种简单的写法没有将控制器与视图分离,这样会大量的代码重复,在实际开发中,还是强烈建议将它们分离的。如果我们将上面的控制器代码独自写到另一个文件中,这样相当于每个网页或操作创建独立控制器,也可能导致大量代码重复。因此可以创建一个abstract PageController类以合并验证参数等公用函数,每个独立页面控制器都可以继承此公用功能。还可以定义一组帮助器类,控制器也可以调用这些类来执行公用功能。

 

 

四、比较

页面控制器相比前端控制器最大的优点就是简单,极易理解,只要有一点WEB开发经验就会使用。当然缺点也很明显,页面控制器要为每个网页(或操作)创建独立控制器,特别是当同一个视图被多次并以不同方式使用时,例如有时我们的添加和编辑是使用同一个视图,这时就会被条件判断语句和状态检查语句弄糊涂,倒置代码的可读性大大降低。

值得注意的是,一个项目早期使用页面控制器,将来转而使用前端控制器也是可以的,特别在使用PageController是类的时候更是如此。

 

 

五、小结

不同的项目应该根据实际项目的大小,复杂度来决定使用哪种架构,当然也要为项目的未来考虑,不写“一次性”代码。小型快速开发的项目推荐使用页面控制器,大型复杂的项目比较适合前端控制器。

2
1
分享到:
评论

相关推荐

    标准企业 MVC 三层架构

    在企业级MVC架构中,控制器可能还会调用服务接口层来实现跨层交互。 4. **业务逻辑层(Business Logic Layer, BLL)** 业务逻辑层位于模型之上,它封装了特定于应用的业务规则和流程。BLL处理复杂的业务处理,比如...

    j2ee控制器及应用

    在Java企业版(J2EE)开发中,控制器是模型-视图-控制器(MVC)设计模式的一个关键组件。MVC模式是一种广泛应用于Web应用程序的架构模式,它将业务逻辑、用户界面和数据处理分离,以提高代码的可维护性和可扩展性。 ...

    基于java MVC架构的企业员工信息管理系统

    【Java MVC架构】 在Java Web开发中,MVC...它通过模型、视图和控制器的分离,实现了良好的代码组织和模块化设计,同时具备文件管理、信息统计和可视化展示等功能,为企业提供了高效、便捷的员工信息管理解决方案。

    3层架构代码生成器

    - 模型-视图-控制器(MVC)框架集成:生成对应的控制器、模型和视图文件,方便Web应用开发。 - 服务接口生成:对于分布式系统,生成服务接口和客户端调用代码。 - 安全和验证机制:自动生成权限验证和数据校验代码。...

    guns企业管理架构人

    在IT行业中,企业架构是一个至关重要的概念,它涉及到企业的组织、流程、信息和技术的集成设计。而"guns"项目则是一个专门针对企业管理架构设计的框架,旨在提供一套高效、灵活且可扩展的解决方案。本文将深入探讨...

    域控制器建立完整教程

    总的来说,将成员服务器提升为域控制器是一个关键的网络管理步骤,它使得企业能够更好地控制和保护其网络资源,提高安全性,简化管理,并为用户提供统一的登录体验。在整个过程中,确保遵循最佳实践,如使用强密码、...

    javaee之MVC架构图书管理系统·

    在MVC架构中,servlet常作为控制器的角色,接收和响应用户请求。 - **mysql**:MySQL是一个流行的开源关系型数据库管理系统,用于存储和管理应用程序的数据。在这个图书管理系统中,MySQL可能用于存储图书信息、用户...

    J2EE中MVC三层架构的实现

    在IT行业中,J2EE平台常常用于构建大型企业级应用,而MVC(Model-View-Controller)架构模式是其核心设计模式之一。MVC模式将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller),旨在...

    基于云的下一代web架构

    本文将探讨现有的Web应用架构,并介绍面向服务的企业架构(SOFEA)及其在实际应用中的经验教训。 #### 现有Web应用架构 早期的Web应用主要基于静态HTML页面,随着技术的发展,逐渐引入了CGI、Servlets、Web模板...

    华为控制器AC配置文档

    2. **Agile Controller-Campus配置举例**:提供的`Agile_Controller-Campus_典型配置举例_V2(chm)`文件是关于华为企业园区网络控制器的配置实例,它可能包含不同场景下的配置案例,如VLAN划分、QoS策略、安全策略等...

    JAVAEE MVC架构

    在Java企业级开发中,Model-View-Controller(MVC)架构是一种广泛应用的设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。这种分层设计使得代码结构清晰,易于维护和...

    基于Struts2+Ajax+JDBC的企业级JavaWeb架构.pdf

    MVC设计模式是一种被广泛采用的软件设计方法,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。模型负责封装数据和业务逻辑;视图负责展示数据给用户;控制器则接收用户的输入,...

    MVC实现的企业人员管理系统

    例如,在企业人员管理系统中,用户可能通过控制器进行员工信息的增删改查操作,控制器会调用模型中的方法来完成这些操作,并通知视图更新显示。 **企业人员管理系统架构** 在Java环境下实现的MVC模式企业人员管理...

    Win配置系列安装域控制器.pdf

    在Windows操作系统中,安装域控制器是构建企业网络基础架构的关键步骤。域控制器是运行Active Directory Domain Services (AD DS)的服务器,它负责管理网络中的身份验证、授权和目录服务。以下是一个详细的步骤指南...

    企业应用系统架构与设计模式

    1. **MVC(Model-View-Controller)模式**:分离视图、模型和控制器,使得界面更新和业务逻辑处理更独立。 2. **响应式设计**:确保应用在不同设备和屏幕尺寸上都有良好表现。 3. **导航模式**:如哈勃导航、抽屉...

    jQuery横向企业组织架构图特效.zip

    CSS是控制网页样式的语言,对于组织架构图的布局至关重要。在这个特效中,CSS主要负责元素的定位、边距、背景色、字体等视觉效果。通过浮动、相对或绝对定位,可以实现元素的横向排列,同时使用伪类和过渡效果增加...

    技术架构图汇总

    Spring框架是Java领域中最流行的轻量级开源框架之一,它支持多种开发模式,如依赖注入(DI)、面向切面编程(AOP)等,极大地提高了Java应用的开发效率和灵活性。 - **核心容器**:包含BeanFactory和...

    企业门户网站 针对企业的产品所做的一个网站,有后台的控制,页面上的所有功能都已实现

    ASP.NET的核心优势在于它提供了模型-视图-控制器(MVC)架构,这使得代码更加清晰、可维护,并支持单元测试。此外,ASP.NET还包括了丰富的内置功能,如身份验证、授权、状态管理、缓存和国际化支持,这些都是构建...

    MVC多层架构

    "Net.shopbook"可能是这个项目的主程序或核心组件的名称,它可能包含了整个MVC架构的实现,包括模型、视图、控制器以及数据库连接和配置文件等。 总的来说,这个"MVC多层架构"项目是一个适合初学者练习的实例,通过...

    Demo三层架构

    1. 表示层:ASP.NET MVC或ASP.NET Core项目,包括视图(Views)、控制器(Controllers)和模型(Models)。 2. 业务逻辑层:包含业务实体类(Business Entities)和业务服务类(Business Services),实现了具体的...

Global site tag (gtag.js) - Google Analytics