吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2921|回复: 4
收起左侧

[Java 转载] 模板方法模式

[复制链接]
NullPointer 发表于 2017-1-25 13:40
1、定义:
模板方法模式在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
2、Demo:
[Java] 纯文本查看 复制代码
package template;

/**
 * 场景:初始化界面--》进入游戏--》分配路线--》放各自的技能--》残血回城(可选)
 * 
 * LOL模板方法类
 * @author TongWei.Chen
 * @date 2017年1月25日12:02:11
 */
public abstract class AbstractLOLTemplate {
	
	public final void play() {
		init();
		coming();
		selectLine();
		releaseSkill();
		if(hook()) {
			goHome();
		}
	}
	
	protected final void init() {
		System.out.println("初始化界面....");
	}
	
	protected final void coming() {
		System.out.println("进入游戏....");
	}
	
	protected abstract void selectLine();
	
	protected abstract void releaseSkill();
	
	protected final void goHome() {
		System.out.println("残血回城....");
	}
	
	/**
	 * 钩子
	 * @return
	 */
	protected boolean hook() {
		return true;
	}
}
package template;

public class LOLYaSuo extends AbstractLOLTemplate {

	@Override
	protected void selectLine() {
		System.out.println("我亚索,走中单!");
	}

	@Override
	protected void releaseSkill() {
		System.out.println("亚索秀技能....");
	}
}
package template;

public class LOLDeMa extends AbstractLOLTemplate {

	@Override
	protected void selectLine() {
		System.out.println("我德马,走上单!");
	}

	@Override
	protected void releaseSkill() {
		System.out.println("德马秀技能....");
	}

	@Override
	protected boolean hook() {
		return false;
	}
	
}
package template;

public class TestLOL {
	public static void main(String[] args) {
		LOLYaSuo ys = new LOLYaSuo();
		ys.play();
		LOLDeMa dm = new LOLDeMa();
		dm.play();
	}
}


输出结果:
初始化界面....
进入游戏....
我亚索,走中单!
亚索秀技能....
残血回城....
初始化界面....
进入游戏....
我德马,走上单!
德马秀技能....

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

幕幽晓寂寂 发表于 2017-1-25 14:09
小白表示这都什么啊~~··
 楼主| NullPointer 发表于 2017-1-25 14:10
qwertyui 发表于 2017-1-25 16:30
 楼主| NullPointer 发表于 2017-1-27 17:14 来自手机
qwertyui 发表于 2017-1-25 16:30
看看支持下。

谢谢,会继续努力的
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 08:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表