【编程语言业务逻辑分类】

1. 面向过程

按照业务逻辑和实现过程步骤来逐步垒代码,代码编写的逻辑即对应于实际实现的步骤过程,核心是过程两个字,从代码执行顺序上体现出设计者的逻辑过程,整个程序就是把若干个过程串起来的效果。本质上像是构建了一条生成流水线,每一道工序都通过代码块严格定义。

优点

复杂问题简单化,把大的任务逐步分解成一个一个小的任务分步实现,实现了每个小的步骤即可完成整体任务。逻辑思想符合日常生活中的常规过程化思维,因而代码可读性较高。

缺点

由于实现逻辑是自上而下的分步过程,任何一个环节的变动,都可能涉及到后续环节的变动,牵一发而动全身。因此代码的灵活性、可维护性较差:构建的生产面包的流水线,如果原料工艺发生变化,很可能要进行生产线的改造;当然想用它来生产饮料,几乎要推倒重来。

应用场景:

需求相对固化,不会经常变更,容易通过过程化思维顺序体现出来的情况。

2. 函数式编程

函数式编程也是一种面向过程的编程范式,主要变化在于把重要的功能逻辑通过函数进行封装,以便重复调用,同时也提高了代码的维护性。其优点就不赘述了,缺点除了牵一发而动全身外(函数的定义发生变化,至少调用它的每个地方都要随之改变),对于较为复杂的应用场景,遇到多个函数需要传递共同的参数时,你就会觉得写起来真是麻烦又啰嗦。如果要实现一个数据库连接查询修改的程序,数据库的连接参数是共性参数,如果根据数据库增删改查的不同分别定义函数,数据库连接参数就要重复多次,而如果通过一个函数来定义并区分,你还得各种if去判断要执行的sql到底属于哪一种。

总之函数式编程不是万能的,有时候虽然能实现结果,但实现的过程可能比较曲折。

3. 面向对象

核心是对象二字,(要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。面向对象的程序设计好比如来设计西游记,如来要解决的问题是把经书传给东土大唐,如来想了想解决这个问题需要四个人:唐僧,沙和尚,猪八戒,孙悟空,每个人都有各自的特征和技能(这就是对象的概念,特征和技能分别对应对象的数据属性和方法属性),然而这并不好玩,于是如来又安排了一群妖魔鬼怪,为了防止师徒四人在取经路上被搞死,又安排了一群神仙保驾护航,这些都是对象。然后取经开始,师徒四人与妖魔鬼怪神仙交互着直到最后取得真经。如来根本不会管师徒四人按照什么流程去取),对象是特征与技能的结合体,基于面向对象设计程序就好比在创造一个世界,你就是这个世界的上帝,存在的皆为对象,不存在的也可以创造出来,与面向过程机械式的思维方式形成鲜明对比,面向对象更加注重对现实世界的模拟,是一种“上帝式”的思维方式。

这部分文字摘抄自http://www.cnblogs.com/linhaifeng/articles/6182264.html,是目前接触到的解释接比较接地气的说法。个人理解,面向对象是一个抽象归类的思维过程,先梳理出具有共同属性的个体对象,然后对他们抽象归类。这样整个编程的设计思想不再是面向过程中的自上而下的串联顺序关系,而变成一种属于和不属于,具有或者不具有(某种属性)的关系。

优点:

对于复杂的场景,功能实现的灵活性更好,换言之适配性和扩展性更好。

缺点:

面向对象是一个抽象的过程,不同于面向对象的流水线式顺序执行过程,编程的复杂程度更高,首要前提是要梳理出对象之间的关系,归类出相应的属性,对于开发者而言要求更高,需具备一定的储备之后才能胜任一般场景的编程开发。

应用场景:

需求经常变化且相对复杂的软件,一般需求的变化都集中在用户层,互联网应用,游戏等都是面向对象的程序设计大显身手的好地方。

原文地址:https://www.cnblogs.com/activecode/p/10108532.html

时间: 2024-09-28 18:52:03

【编程语言业务逻辑分类】的相关文章

视图逻辑、应用逻辑、业务逻辑

应用逻辑:连接视图与业务.串联业务.业务切换.业务管理: 2.业务逻辑分类: (1)应用逻辑. (2)领域逻辑. http://www.cnblogs.com/easygame/p/4339948.html https://github.com/DeclarativeHub/TheBinderArchitectur 原文地址:https://www.cnblogs.com/feng9exe/p/10273121.html

机房合作---业务逻辑在哪里?

前言:学习过程中,不要因为有遗留的问题而感到惭愧,在之后项目中,只要用心,就能解决遗留的问题. 谨以此文,记录我重新对UI.外观.BLL层中是否该有逻辑判断的一个思考推理过程. 验收机房重构的时候,我的UI层.外观层.BLL层代码是这样子写的:(以登录这条线为例) 先看BLL层: Public Class LoginManager '检查用户名是否存在 Public Function IsUserExists(ByVal user As Entity.UserInfo) As Boolean D

微软-创建业务逻辑层

https://msdn.microsoft.com/zh-cn/dd255899 简介 在教程一中创建的数据访问层 (DAL) 将数据访问逻辑与表示逻辑清晰地分离开来.然而,尽管 DAL 从表示层中清晰地分离出数据访问层细节,它却并没有实施任何可能采用的业务规则.例如,我们想让我们的应用程序在 Discontinued 字段设为 1 时禁止对 Products 表的 CategoryID 或 SupplierID 字段的修改,还有,我们可能想实施一些资历规则以便禁止发生这样的情况:雇员被其后入

在 ASP.NET 中创建数据访问和业务逻辑层(转)

.NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均与表示层分离.表示层由网站用户有权查看或更改数据的页面组成. ASP.NET 可通过多种方式提供数据访问.业务逻辑和表示形式之间的分离.例如,数据源模型(包括 LinqDataSource 和 ObjectDataSource 等服务器控件)可将表示层与数据访问代码和业务逻辑分离. 另一种模式是将数

系统架构师-基础到企业应用架构-业务逻辑层

一.上章回顾 上章我们主要讲述了系统设计规范与原则中的具体原则与规范及如何实现满足规范的设计,我们也讲述了通过分离功能点的方式来实现,而在软件开发过程中的具 体实现方式简单的分为面向过程与面向对象的开发方式,而目前更多的是面向对象的开发设计方式.并且我们也讲述了该如何通过设计手段去分析功能点及设计分离 点,应该如何在设计的过程中分析的角度及如何去满足设计规范与原则.首先我们通过下图来回顾下上章要点: 二.摘要 本文将已架构的方式去分析分层结构中的业务层的设计,如何写出来内聚度,高耦合的业务逻辑层

所思所想 业务逻辑

1.在一次的操作中不要涉及到过多的数据表,数据表过多---导致编码复杂,易出错,这样就是在一个方法中做了很多的事情 2.业务规则对应着业务方法 3.现在关注一下数据,我们在页面上看到的所有东西都是数据,那么如何将这些数据抽象成为你想要的对象呢? 4.尽情放开你的思想,你随便可以创造任何的对象,没有对错之分,在你的世界里你就是主宰,你想怎么操作就怎么操作所以请不要约束你的思想,尽情的构造你自己所认为的对象世界 5.要有一个概念”用户交互“”使用场景“”交互过程“,在这个分析互动的过程中可以看清楚很

cell业务逻辑处理(时间格式化)

一.点击更多按钮 1.项目需求 点击更多按钮,从底部弹出一个框 2.怎么从底部弹出一个框? 两种方法: 一种用 UIActionSheet 另一种用 UIAlertController 2.1 使用UIActionSheet 好处: 不需要控制器,直接就能使用 缺点: 方法过期了,监听按钮的点击比较麻烦 源代码: // 以后只要发现有可变参数,最后一定要添加nil UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:nil de

WEB安全第七篇--终结篇考验逻辑思维:逻辑漏洞大汇总(越权、会话逻辑、业务逻辑、暴力破解)

零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的payload技巧以便于备忘.不是大神.博客内容非常基础,如果真的有人看而且是大牛们,请不要喷我,欢迎指正我的错误(水平有限). 一.越权: 1.本质: 某账户拥有了超出它应有权限范围外的操作许可权. 2.分类: (1)水平越权:横向拥有了同等安全等级.密级等衡量标准账户的权限. (2)垂直越权:纵向拥有

sklearn之逻辑分类

''' 逻辑分类:----底层为线性回归问题 通过输入的样本数据,基于多元线型回归模型求出线性预测方程. y = w0+w1x1+w2x2 但通过线型回归方程返回的是连续值,不可以直接用于分类业务模型,所以急需一种方式使得把连续的预测值->离散的预测值. [-oo, +oo]->{0, 1} 逻辑函数(sigmoid):y = 1 / (1+e^(-x)), 该逻辑函数当x>0,y>0.5:当x<0, y<0.5: 可以把样本数据经过线性预测模型求得的值带入逻辑函数的x