Java设计模式 模板模式

模板模式

什么时候用到模板方法模式:

实现一个功能整体步骤一致, 实现方式可能不同这样就可以抽象成一个公共的父类提供子类去实现

实际开发场景:

最典型的还是属于: serlet 中的 service 方法

在这里插入图片描述

模板模式实例code

分页封装类

public class Page<T> {

	// 当前页
	private Integer curr;
	// 每页显示
	private Integer limit;
	// 总记录数
	private Integer count;
	// 分页后的数据
	private List<T> data;

    // getter(), setter(), toString();

}

抽象层

public abstract class PageAware<T> {

	public abstract Integer getCount();
	
	public abstract List<T> getData(int curr, int limit);
	
	public final Page<T> service(Page<T> page) {
		page.setCount(getCount());
		page.setData(getData(page.getCurr(), page.getLimit()));
		return page;
	}
	
}

子类具体实现

public class PageAwareImpl extends PageAware<String> {

	@Override
	public Integer getCount() {
		return 110;
	}

	@Override
	public List<String> getData(int curr, int limit) {
		return Arrays.asList(
					"data01", "data02", "data03",
					"data04", "data05", "data06",
					"data07", "data08", "data09"
				).subList(--curr, limit);
	}

}

Junit

public static void main(String[] args) {
    PageAware<String> pageAware = new PageAwareImpl();
    Page<String> page = new Page<String>(1, 3);
    page = pageAware.service(page);

    System.out.println(page);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值