大型企业应用一般首先要将架构分为三层:表现层,领域层,数据源层。其中:
表现层的责职是仅完成数据和输入与输出,以及所有的界面交互逻辑。
领域层的责职则是完成所有的业务逻辑。
数据源层则是完成数据库的存取操作。
由此可以看出,表现层相当于领域层的一个用户。而领域层也相当于是数据源到的一个用户。在PHP开发框架中,实际并不存在领域层的代码。(所以,一些框架声称,它支持领域驱动设计,实际是懵人的!)当然,好的PHP框架,有可能会强制使用三层结构,从而实现领域驱动架构。但这样做,并不一定能够保证产生完美的领域驱动的应用架构。这就是说,任一项目仍需要项目经理,技术总鉴,或架构师对其进行规划与规范。
很多人不解,为什么要分为三层。其实,这叫做,没吃过苦头,不知道疼。具体说来,有很多种情况,值得你这样做:
其一:界面逻辑与界面是密不可分的,而当界面需求变化时,领域模型不一定需要变更。同样,领域模型中的逻辑有所变化时,界面逻辑不一定会同时变更。分开后,可以独立应对需求的变化。
第二:这一点比上一点更加重要,那就是,不同的界面逻辑,可能需要相同的领域模型。这样,即保证了领域模型的共用性,不会出现重复的代码。因此,当你发现某一个地方有错时只需要修改一处。反过来,不同的领域模型,可能需要使用相同的界面逻辑。分开后,就不会使代码产生迪卡尔积的数量。而形成自由组合。
第三:数据库移植。比如,有些大公司早期使用ORACLE。但后来,由于资金与数据的压力,不得不使用非O化(丢掉ORACLE)时,这时候,你要改的只有领域层,其它地方是不用动的。原因很简单,因为,你的数据源库层是框架实现的,肯定是多种数据库均支持的。但是领域层,则是与数据操作,特别是SQL相关的,则均是要改动的部分。
第四:经过这样分层以后,才有可能对领域层采取更深的设计。比如,现在流行开放API,这就要求将领域层设计为:服务与事务脚本结构,或者控制器脚本与实体结构。当然,这两种结构的选择,则与所开放的API的实际需求有关。
由此可见,一个好的架构通常有利于开发中应对需求的不断变化,有利于应用的升级与维护。也只有这样,才能实现快速高效地开发。
分享到:
相关推荐
为了简化开发,.NET4.0特别提供一个并行编程库System.Threading.Tasks,它可以简化并行开发,你无需直接跟线程或线程池打交道,就可以简单建立多线程应用程序。此外,.NET还提供了新的一组扩展方法PLINQ,它具有自动...
《图表细说电子元器件》是一本深入浅出地介绍电子元器件的参考资料,通过直观的图表形式,帮助读者理解并掌握各种电子元器件的工作原理、功能特点以及应用方法。电子元器件是构成电子系统的基础,是电子技术的核心...
一、线程的定义二、线程的基础知识三、以ThreadStart方式实现多线程四、CLR线程池的工作者线程五、CLR线程池的I/O线程六、异步SqlCommand七、并行编程与PLINQ八、计时器与锁在前一节所介绍的线程都属于CLR线程池的...
本文主要从线程的基础用法,CLR线程池当中工作者线程与I/O线程的开发,并行操作PLINQ等多个方面介绍多线程的开发。其中委托的BeginInvoke方法以及回调函数最为常用。而I/O线程可能容易遭到大家的忽略,其实在开发...一
第四章——细说HighGUI 第五章——图像处理 第六章——图像变换 第七章——直方图与匹配 第八章——轮廓 第九章——图像局部与分割 第十章——跟踪与运动 第十一章——摄像机模型与标定 第十二章——投影与三维视觉 ...
高级架构师必备莲花宝典:细说系统架构
《细说PHP》作为一本面向PHP应用开发新手的入门教材,覆盖了PHP语言的基础知识和应用实践。书中内容既实用又全面,这使得它非常适合那些刚接触PHP或者准备开始PHP学习的读者。 首先,初学者需要了解的是PHP的基础...
BS(Browser-Server)架构是基于浏览器的Web应用模式,而CS(Client-Server)则是客户端-服务器模式。 4. **Servlet项目演示** Servlet项目通常包括编写Servlet类,这些类继承自HttpServlet,并重写doGet或doPost...
《细说PHP》以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有大量的实例代码, 图文并茂。系统地介绍了PHP的相关技术及其在实际Web开发中的应用。
- **概述**:Transaction Script 是一种简单的架构模式,适用于处理单个事务的业务逻辑。 - **分析**:虽然易于实现,但对于复杂的业务流程支持有限。 - **Table Module**: - **概述**:Table Module 模式为每个...
《细说PHP》是一本深入浅出的PHP学习书籍,其光盘源码包含了丰富的实践示例和项目代码,旨在帮助读者更好地理解和掌握PHP编程语言。这本书由"LAMP兄弟连"倾力打造,该团队在IT领域尤其是PHP教育方面有着深厚的底蕴和...
这个项目采用Model-View-Controller(MVC)设计模式,这是一种广泛应用于Web开发中的架构模式,用于分离业务逻辑、用户界面和数据处理。 【描述】中提到的“结合视频敲的 sql server版 可直接运行”,意味着该项目...
《细说PHP》配套源码全书共17章,每一章都是PHP独立知识点的总结。内容涵盖了PHP的运行环境搭建、Web服务器Apache的配置与应用、动态网站开发的前台技术、PHP编程语言的语法、PHP的常用功能模块和实用技巧、MySQL...
J2EE(Java 2 Platform, Enterprise Edition)是Java平台上针对企业级应用的一套标准,包含了13种技术,包括Servlet、JSP、EJB等。其中,Servlet是用于接收和响应HTTP请求的服务器端组件,而JSP则负责动态生成HTML...
对于PHP应用开发的新手而言,本书不失为一本好的入门教材,内容既实用又全面,所有实例都可以在开发中直接应用,并辅以大量的视频教程、配套的教学课件、章节练习题等,使读者轻松掌握所学知识,特别适合大中专院校...