文档章节

对于初学者-正确理解业务逻辑

莫库什勒
 莫库什勒
发布于 2016/08/30 22:22
字数 664
阅读 13
收藏 1

工作中,看到过一篇文章,特意做下笔记,摘抄下来,感谢原作者大大的分析: http://www.cnblogs.com/zhaoxiaolei/archive/2012/04/06/2434112.html

在开发中,经典的三层架构: 表示层,业务逻辑层,数据访问层,说到表示层和数据访问层我们有很清晰的认知,但业务逻辑层,往往就缄默了;

架构三层(MVC)

表示层:负责页面展示及用户交互

业务逻辑层: 数据访问交互处理,简而言之就是_数据在不同的层次进行传递过程中形成的各种关系_

数据访问层: 负责从数据库存储数据

###代码三层 action(controller)层: 一般用来验证数据非空,格式 ,及页面的跳转控制

service层: 一般是用来一个业务逻辑的实现,比如下订单: 验证订单》重复下单》下单后短信通知回馈用户

dao层: 读写数据库, 如生成一条订单记录;

###易错点

在MVC 很多的人在action中写业务代码,更有人把数据库的代码也写到了action中,这明明就不理解 分层的意思。应该做到各司其职。
1 . "对象间接的通过控制的aciton耦合一起" : 典型的错误依赖,闭合依赖;

构架师制定框架,程序员去实现业务逻辑,是完美的结构。
DDD对于中小项目可能更有效率,但是对于大项目而言,可能会让架构师和程序员的工作分工不明确;
架构师过得考虑业务细节,而程序员则接触额外的是不属于其的自身的细节;徒劳增加开发成本和带来更多bug;

2 . 对象和aciton耦合在一起;
不利于项目的分模块,推荐方式: 制作中间模块,提高模块独立化;

3 .重要的事情都集中在控制器(或者dao层)中; 不过过分集中代码在某一块,使用spring可以更好地细化责任,更好地额执行开闭原则

总结: 打字真累,边打字边思想更累; 业务逻辑运用好的地方在于: 做socket编程,调用webService,业务对象持久化,失误控制,计划调度,消息等等均在业务逻辑层,根据功能,依赖关系进行分层,从维护的角度,可解耦; 分层的优势: 可维护,可扩展,可读性好;

本文转载自:http://www.cnblogs.com/zhaoxiaolei/archive/2012/04/06/2434112.html

莫库什勒

莫库什勒

粉丝 20
博文 171
码字总数 68276
作品 0
杭州
高级程序员
私信 提问
如何正确理解@classmethod与@staticmethod

Python面向对象编程中,类中定义的方法可以是 @classmethod 装饰的类方法,也可以是 @staticmethod 装饰的静态方法,用的最多的还是不带装饰器的实例方法,如果把这几个方法放一块,对初学者...

liuzhijun
2017/07/20
0
0
业界 | 数据科学家要先学逻辑回归?图样图森破!

     大数据文摘编译作品   编译:王梦泽、笪洁琼 、夏雅薇   逻辑回归的结果很难解读,在真实的商业环境中考虑到你要跟你的老板或同事解释模型的时候,有可能自己都无法解释清楚,所...

大数据文摘
2018/05/29
0
0
关于简单MVC的后续步骤及感受

前提条件为我们已经构建了如下的代码规则: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace MyLibery{ region 属性 endregion region 业务......

C2056LOVE
2013/10/16
0
0
深入探索spring技术内幕(五): 剖析spring AOP工作原理

一、前言 AOP (Aspect Oriented Programing) - 面向切面编程,它主要用于日志记录、性能分析、安全控制、事务处理、异常处理等方面。 AOP主要使用JDK的反射和动态代理,AOP代理其实是由AOP框...

HelloRookie
2016/10/21
43
0
Java动态代理实现AOP

Java动态代理实现AOP 作者:兄弟连 www.itxdl.cn 目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀Framework,--Spring, JAC, Jboss AOP 等等。AOP似乎...

疯狂的小黑
2016/10/31
1
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
2
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
2
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部