前台系统三:展示页实现:创建程序业务逻辑类Service类;(分页模块的Model的Service部分)

目录

一:概述

二:开发PaintingService类:完成分页查询部分的程序业务逻辑类

由此,Model中的,Service部分就开发完成了; 即Model部分就开发完成了。


一:概述

本部分主要是MVC架构的Model(模型)层中的Service部分:然后,本篇博客的具体内容是分页功能的Service部分:

Service是所有业务逻辑最完整的实现;

主要包括:

     (1)PaintingService类完整的程序业务逻辑类,接受Controller的请求,下面调用Dao(隶属于Model部分)类以获取数据;然后PaintingService类本身可以自己加一点其他(非数据查询)的业务代码;综合来看,Service类和Dao共同组成了Model;


二:开发PaintingService类:完成分页查询部分的程序业务逻辑类

具体在业务上就是:

扫描二维码关注公众号,回复: 12756248 查看本文章

package com.imooc.mgallery.service;

import java.util.List;

import com.imooc.mgallery.dao.PaintingDao;
import com.imooc.mgallery.entity.Painting;
import com.imooc.mgallery.utils.PageModel;

/**
 * 这个类主要职责:完成完成的程序业务逻辑;
 * 涉及到与底层数据交互的工作,交给Dao类去实现
 * @author dell
 *
 */
public class PaintingService {
	private PaintingDao paintingDao = new PaintingDao();
	/**
	 * 调用PaintingDao类的pagination()方法,获得分页数据;
	 * 这个类的内容看似和PageModel类的内容雷同,但是这个类还是必须的,在实际的开发中,需要遵从MVC原
	 * 则的按层逐级调用的规范;;;所以,即便没有其他的业务逻辑,我们也要写一个Service,然后让这个Service去调用Dao;
	 * @param page 当前第几页
	 * @param rows 每页有几条数据
	 * @return
	 */
	public PageModel pagination(int page,int rows) {
		if(rows == 0) {   // 可以看到,Service类中不但需要调用Dao来进行数据访问;
			// Service类还包括:一些前置条件的检查,以及得到调用结果后的后置数据的处理,这些工作都是与底层数据无关的
			// Service类中的方法用于处理完整的业务逻辑,Service类中方法需要尽量写的完整;
			// 而Dao中的方法只与底层数据进行交互的;;;
			// 所以,在这个例子中,即使Service类中的方法和Dao中的内容基本相同,也必须要要写这个Service类;
			throw new RuntimeException("无效的rows参数");
		}
		return paintingDao.pagination(page, rows);
	}
	
//	public static void main(String[] args) {   // 这个main方法,仅仅是开发时测试之用
//		PaintingService paintingService = new PaintingService();
//		PageModel pageModel = paintingService.pagination(2, 6);
//		List<Painting> paintingList = pageModel.getPageData();
//		for(Painting painting:paintingList) {
//			System.out.println(painting.getPname());
//		}
//		System.out.println(pageModel.getPageStartRow()+":"+pageModel.getPageEndRow());
//	}

}

PaintingService类的几点说明:

(1)PaintingService类:完成的程序业务逻辑;这个类向Controller部分提供完整的服务;

(2)Controller的请求过来后,PaintingService类需要接受参数,预处理参数,调用Dao部分获取返回的数据,然后(如果需要的话)可以对Dao返回的数据做一下处理,再发送给Controller;

(3)虽然PaintingService什么都没干,很简单;甚至和Dao部分内容差不多,但是这个类是无法被取代的;因为这个PaintingService类可能需要包含一些其他的(可能与获取数据没有直接关系的)业务处理,例如上面代码中判断了rows的参数是否是0;


由此,Model中的,Service部分就开发完成了; 即Model部分就开发完成了。

猜你喜欢

转载自blog.csdn.net/csucsgoat/article/details/114836768