/**
* 模版方法模式
*/
public class TemplateDemo {
public static void main(String[] args) {
Teacher1 javaTeacher = new JavaTeacher("张三");
javaTeacher.work();
Teacher1 oracleTeacher = new OracleTeacher("李四");
oracleTeacher.work();
}
}
//教师类
abstract class Teacher1{
private String name;//姓名
public Teacher1(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//模版方法
//第1,3步骤是固定的,第2步骤由具体的子类实现
public void work(){
//1.备课
prepared();
//2.授课
teaching();
//3.下课
end();
}
public void prepared(){
System.out.println(name + "备课");
}
public abstract void teaching();/**把授课的方法定义为抽象方法,让子类去实现**/
public void end(){
System.out.println(name + "下课");
}
}
class JavaTeacher extends Teacher1{
public JavaTeacher(String name) {
super(name);
}
public void teaching() {
System.out.println("打开eclipse...");
System.out.println("编写Java代码...");
System.out.println("运行Java代码...");
}
}
class OracleTeacher extends Teacher1{
public OracleTeacher(String name) {
super(name);
}
public void teaching() {
System.out.println("打开数据库工具...");
System.out.println("编写SQL语句...");
System.out.println("运行SQL语句...");
}
}
* 模版方法模式
*/
public class TemplateDemo {
public static void main(String[] args) {
Teacher1 javaTeacher = new JavaTeacher("张三");
javaTeacher.work();
Teacher1 oracleTeacher = new OracleTeacher("李四");
oracleTeacher.work();
}
}
//教师类
abstract class Teacher1{
private String name;//姓名
public Teacher1(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//模版方法
//第1,3步骤是固定的,第2步骤由具体的子类实现
public void work(){
//1.备课
prepared();
//2.授课
teaching();
//3.下课
end();
}
public void prepared(){
System.out.println(name + "备课");
}
public abstract void teaching();/**把授课的方法定义为抽象方法,让子类去实现**/
public void end(){
System.out.println(name + "下课");
}
}
class JavaTeacher extends Teacher1{
public JavaTeacher(String name) {
super(name);
}
public void teaching() {
System.out.println("打开eclipse...");
System.out.println("编写Java代码...");
System.out.println("运行Java代码...");
}
}
class OracleTeacher extends Teacher1{
public OracleTeacher(String name) {
super(name);
}
public void teaching() {
System.out.println("打开数据库工具...");
System.out.println("编写SQL语句...");
System.out.println("运行SQL语句...");
}
}