• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >编程问答 > 什么是业务逻辑?

什么是业务逻辑?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-07

佚名通过本文主要向大家介绍了业务逻辑,业务逻辑层,业务逻辑图,业务逻辑错误,业务逻辑流程图等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:什么是业务逻辑?
描述:

对这个概念不是很清楚,还常听到业务逻辑层,那么是个业务逻辑在代码中指的到底是什么呢?


解决方案1:

业务逻辑就是客户的逻辑。@Ke_Wu @酷瓜哥哥 的回答已经很好了,那我就聊聊什么不是业务逻辑。

在 N 层架构的系统中,经常会提到这些名词。

  • 表现层(Presentation layer)
  • 业务逻辑层(Application layer)
  • 数据访问层(Data layer)

在一个系统开发过程中,后台做一些处理,如果成功,则跳转到 success_xxx 页面,如果失败,则跳转到 fail_xxx 页面,如果系统抛出了异常,则跳转到 5xx 页面,…… 这些属于页面逻辑。

还有一些持久层的逻辑,也就是对数据库的操作。

业务逻辑是核心逻辑,只关注用户的业务,比如管理系统和财务系统,需要处理的业务肯定不一样,但是页面的跳转大致相同,对于持久层的操作也差不多。如果你使用了 SSH 框架,那么 hibernate 和 struts 的代码有很大一部分可以复用。

业务逻辑(BL Action)不关心页面如何跳转,只是简单的返回成功,或是失败,或是异常,struts 框架根据配置文件跳转到相应的页面。

业务逻辑也不关心数据如何存储,是存储在文件系统,还是存储在数据库系统。是存储在MySQL,还是NoSQL。也不关系到底用没用缓存。

如果你正在学用 PHP 开发网站,那么忘掉这些概念吧。如果你使用 Java 的框架开发企业级应用,建议看看 SSH 的源码或者 DEMO。

解决方案2:

简单来就是在怎么做事(how to do), 比方说你去餐馆吃饭, 你点了个炒米粉,服务员给你下单,厨房见到单后下锅给你炒,你吃完后付账。这一些列动作都可以说是业务逻辑。

解决方案3:

开玩笑的说,“业务逻辑”就是“不讲逻辑”
比如你开发了一个收款系统,一件商品卖10元钱。有人买了10个就是100元。这个很有逻辑。但是这时候客户说了:“不行,我们搞活动买10个打8折,所以总价是80元”,这就是业务逻辑。
这种逻辑和程序员可以推断的常理来说的逻辑不同,比如,一个商品的价格保存以后,除非有人改动,下次读取应该保持一致,比如不能把一个价格除零。业务逻辑是由客户的需求所决定的。另外经常这种逻辑是容易改动的。
在程序里用专门的模块或者层来处理业务逻辑,可以隔离这种变化对程序其它部分的影响。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • (laravel)关于这种业务逻辑如何实现?宠物离线打工,定时成长,php+mysql如何实现
  • 什么是业务逻辑?

相关文章

  • 2017-06-07 (python)怎样对待项目引入第三方库?
  • 2017-06-07 有没有加密很快,解密较慢的算法
  • 2017-06-07 (laravel)如何权衡Blade和VueJS?
  • 2017-06-07 gunicornwithgevent并未解决Flask阻塞问题,求指导
  • 2017-06-07 如何通过ip查地址laravelORM如何多表查询的时候再加分页
  • 2017-06-07 vagrant网络问题
  • 2017-06-07 php怎么用preg_replace替换这样的字符串?
  • 2017-06-07 您好请问七牛符合上传覆盖文件
  • 2017-06-07 spring+hibernate更新和插入记录的问题请教各位高手出手相助啊
  • 2017-06-07 qrsync上传失败,相同配置qrsbox成功

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 我遇到了一个问题,想寻找一个操作3D模型的开源程序,让我专注逻辑不实现渲染。
    • python爬虫(python)爬虫获取AJax数据问题
    • 七牛大视频上传
    • Redis缓存Java对象的问题
    • 怎样使用python的pandas库读取值含有逗号的csv格式?
    • 七牛切hls文件时间片大小能否在开头设置更小?
    • rubyminemac版RubyMine的代码对齐快捷键是什么?
    • (python)关于使用beatifulsoup4解析html卡死的问题
    • api使用次数感觉不明确
    • xml与面向组件开发

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有