首页 > 软件开发 >软件开发全是业务逻辑 软件开发全是业务逻辑吗

软件开发全是业务逻辑 软件开发全是业务逻辑吗

IT信息网 2024-08-19 05:12:09 0

大家好,今天小编关注到一个比较有意思的话题,就是关于软件开发全是业务逻辑的问题,于是小编就整理了1个相关介绍软件开发全是业务逻辑的解答,让我们一起看看吧。

java业务逻辑,写在哪里比较好?

java的项目架构一般是三层架构,分别是数据访问层,业务逻辑层,和表示层;他们各司其职,数据访问层的代码一般与数据访问有关,表示层与前端有关,比如请求的控制,数据的传递,数据的显示;那么有关业务逻辑的代码写在业务逻辑层;

软件开发全是业务逻辑 软件开发全是业务逻辑吗

现在很多公司开发人员应该采用都是mvc架构。

Mvc就是所谓的model模型,view视图,controller控制器。

每个层都有明确分工。

简单的项目抛开nignx,网关,一般都是前端发一个请求到后端,首先到达contoller然后是service层再然后是dao层。

这里的service层就是所谓的业务层,专门负责业务处理操作,而dao层负责和数据库打交道,从db拿数据返给service,sevice处理完返给controller层,controller通过视图解析器,解析完通过浏览器渲染页面。

说到这里基本上,我想答案已经很明显了。那就是Java业务逻辑写在service层。

而sevice层其实又涉及到接口和接口实现。

就是我们一般写代码都会定义一个接口供controller去调用。

其实service接口的实现类最终才应该是写业务逻辑的地方。

当然很多公司可能不止一个sevice层,比如还有一个manager层继续对数据做特殊业务处理,这里只是简单的说下大致情况。

现在Java项目一般都是用Spring全家桶开发,以web项目来讲结构主要分为Controller层、Service层和DAO层,细分的话有的项目可能还会有一个Manager层。

一个请求到达后端之后会根据请求的路径找到对应的Controller,Controller会调用相应的业务Service,Service会调用DAO,DAO去执行具体数据库查询操作。

同时DAO返回数据到Service,数据经过Service组装成合适的形式之后返回给Controller,最终Controller对外返回请求结果。

首先,Controller主要负责处理对应的请求,在Controller层我们可以做一些基础的参数校验的工作,比如参数是否为空、格式是否正确等。

其次,Controller还有一个职责就是需要正确处理Service层抛出的异常。

最后,Controller负责将最终结果返回给调用方。

当然在Controller里也不是只能调用Service,就我自己平时写代码的习惯来讲,对于一些简单的查询操作,我会在在Controller里直接调用DAO,因为业务逻辑很简单没必要再用Service封装一层。

Service通常来讲就是业务层,主要用来处理复杂的业务逻辑,并对DAO返回的数据进行组装,使之符合接口定义的数据格式。

一些需要数据库事务支持的业务逻辑也会放在Service层处理,比如一个创建订单业务逻辑,我们需要保证创建订单和扣减库存两个操作要么都成功要么全失败,那么此时我们就可以这两个操作封装到一个Service方法里保证整体业务的事务性。

这是一个非常好的问题,很多Java初学者都会面临类似的问题,作为一名从业多年的IT人,同时也出版过Java编程书籍,所以我来回答一下这个问题。

首先,Java语言的抽象程度是比较高的,在进行程序开发的过程中,通常会为Java代码按照不同的抽象程度进行模块划分,这个过程对于程序员的开发和设计能力有比较大的考验,抽象不足或者是抽象过度都会导致一定的问题。实际上,为了解决抽象设计和模块化问题,Java开发人员通常会采用各种开发框架(Spring、OSGI等),这也是为什么学习Java通常都需要学习框架的一个重要原因。

如果从单独的功能模块划分角度来看,Java代码可以分为数据部分、控制部分和呈现部分,也就是比较经典的MVC结构,其中业务逻辑就可以放在控制层,早期的设计方案也会把一部分业务逻辑集中在模型部分。实际上,在当前微服务概念的推动下,抽象程度也得到了一定的提升,结合云计算服务(PaaS),很多业务逻辑可以进行独立设计,而当前业务中台和数据中台本身就是单独设计的,各自都有相应的侧重点。

对于扩展要求比较高的系统来说,把业务逻辑抽象出来,与控制层和数据层进行解耦也会获得更大的灵活性,复用程度也会比较高,而且在进行技术平台迁移时会更方便一些。实际上,Java开发从早期的Struts向Spring过渡的过程中,就在一定程度上提升了代码的复用性和扩展性。

最后,在定义Java业务逻辑位置的时候,一定要考虑到容器(Container)的问题,通常业务逻辑可以通过多线程的方式来提升执行效率,而实体组件(Bean)则通过容器来提升效率。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

到此,以上就是小编对于软件开发全是业务逻辑的问题就介绍到这了,希望介绍关于软件开发全是业务逻辑的1点解答对大家有用。