模板设计(templatePattern)模式

一. 模板设计模式在书中定义:

  定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。

二.模版方法模式的结构

       模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种:

  • 抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。
  • 模版方法:由抽象类声明并加以实现。一般来说,模版方法调用抽象方法来完成主要的逻辑功能,并且,模版方法大多会定义为final类型,指明主要的逻辑功能在子类中不能被重写。
  • 钩子方法:由抽象类声明并加以实现。但是子类可以去扩展,子类可以通过扩展钩子方法来影响模版方法的逻辑。
  • 抽象类的任务是搭建逻辑的框架,通常由经验丰富的人员编写,因为抽象类的好坏直接决定了程序是否稳定性。

三.实现

    1.抽象模板类

package com.zqr.design.templatePattern;
import java.util.ArrayList;
/**
 * 抽象模板
    * @ClassName: AbsTemplate  
 */
public abstract class AbsTemplate {
	protected abstract void before();
	protected abstract void after();
	protected abstract boolean isEat();

	/**
	 * 	定义了一系列操作算法
	    * @Title: excute  
	    * @param @param sportCallBack:钩子函数,用于实现不同的细节操作
	 */
	private final <T> T excute(SportCallBack<T> sportCallBack) {
		System.out.println(sportCallBack.getName());
		before();
		T sport = sportCallBack.sport();
		after();
		if (isEat()) {
			System.out.println("吃东东,补充体力.....");
		}
		return sport;
	}
	/**
	 * 	对子类提供篮球运动
	    * @Title: playBasketBall  
	 */
	protected final <T> T playBasketBall(String name) {
		class BasketBall implements SportCallBack<T>{
			@Override
			public T sport() {
				System.out.println("打篮球.....");
				ArrayList<Object> nameLst = new ArrayList<>();
				nameLst.add(name);
				return (T) nameLst;
			}
			@Override
			public String getName() {
				return name;
			}
		}
		return excute(new BasketBall());
	}
	/**
	 * 	对子类提供足球运动
	    * @Title: playFootBall  
	 */
	protected final <T> T playFootBall(String name) {
		class FootBall implements SportCallBack<T>{
			@Override
			public T sport() {
				System.out.println("踢足球.....");
				ArrayList<Object> nameLst = new ArrayList<>();
				nameLst.add(name);
				return (T) nameLst;
			}
			@Override
			public String getName() {
				return name;
			}
		}
		return excute(new FootBall());
	}
}
   
package com.zqr.design.templatePattern;
/**
 * 	钩子接口,用于模板传参
    * @ClassName: SportCallBack  
 */
public interface SportCallBack<T> {
	T sport();
	String getName();
}

    2.具体模板类

package com.zqr.design.templatePattern;
import java.util.List;
/**
 * 	具体模板类:实现excute细节函数
    * @ClassName: ConcreteTemplate  
 */
public class ConcreteTemplate extends AbsTemplate{
	@Override
	protected void before() {
		System.out.println("热身.....");		
	}
	@Override
	protected void after() {
		System.out.println("休息.....");
	}
	@Override
	protected boolean isEat() {
		return true;
	}
	/**
	 * 	对外提供篮球运动
	    * @Title: basketBallPlay  
	 */
	public void basketBallPlay(String name) {
		playBasketBall(name);
	}
	/**
	 * 	对外提供足球运动
	    * @Title: footBallPlay  
	 */
	public List<Object> footBallPlay(String name) {
		return playFootBall(name);
	}
}

    3.test



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蛋白质是生物体中普遍存在的一类重要生物大分子,由天然氨基酸通过肽键连接而成。它具有复杂的分子结构和特定的生物功能,是表达生物遗传性状的一类主要物质。 蛋白质的结构可分为四级:一级结构是组成蛋白质多肽链的线性氨基酸序列;二级结构是依靠不同氨基酸之间的C=O和N-H基团间的氢键形成的稳定结构,主要为α螺旋和β折叠;三级结构是通过多个二级结构元素在三维空间的排列所形成的一个蛋白质分子的三维结构;四级结构用于描述由不同多肽链(亚基)间相互作用形成具有功能的蛋白质复合物分子。 蛋白质在生物体内具有多种功能,包括提供能量、维持电解质平衡、信息交流、构成人的身体以及免疫等。例如,蛋白质分解可以为人体提供能量,每克蛋白质能产生4千卡的热能;血液里的蛋白质能帮助维持体内的酸碱平衡和血液的渗透压;蛋白质是组成人体器官组织的重要物质,可以修复受损的器官功能,以及维持细胞的生长和更新;蛋白质也是构成多种生理活性的物质,如免疫球蛋白,具有维持机体正常免疫功能的作用。 蛋白质的合成是指生物按照从脱氧核糖核酸(DNA)转录得到的信使核糖核酸(mRNA)上的遗传信息合成蛋白质的过程。这个过程包括氨基酸的活化、多肽链合成的起始、肽链的延长、肽链的终止和释放以及蛋白质合成后的加工修饰等步骤。 蛋白质降解是指食物中的蛋白质经过蛋白质降解酶的作用降解为多肽和氨基酸然后被人体吸收的过程。这个过程在细胞的生理活动中发挥着极其重要的作用,例如将蛋白质降解后成为小分子的氨基酸,并被循环利用;处理错误折叠的蛋白质以及多余组分,使之降解,以防机体产生错误应答。 总的来说,蛋白质是生物体内不可或缺的一类重要物质,对于维持生物体的正常生理功能具有至关重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值