12、抽象类应用——模板方法模式
模板方法模式(Templete Method):定义一个操作中的算法骨架,而将一些可变部分的实现延迟到子类中。模板方式模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。
public class Demo1
{
public static void main(String[] args)
{
UserManager um = new UserManager();
um.action("admin", "add"); //这边先进入父类的action方法,发现admin跟um的admin一样,就可执行子类的excute
//方法,add跟action后面的add相同,所以最后输出“执行了添加程序”
}
}
abstract class BaseManager
{
public void action(String name, String method)
{
if("admin".equals(name))
{
excute(method);
}
else
{
System.out.println("你没有管理员权限,请联系管理员");
}
}
public abstract void excute(String method); //这个是excute方法的骨架,加上这个以后,这个类就变成了父类,上面那
//个if大括号里的excute方法在下面的子类里面出现,所以下面UserManager
//后面要加extends BaseManager
}
class UserManager extends BaseManager
{
//用户数否登陆的验证
//验证成功后才能进行以下操作
//如何验证呢?放到父类中去验证!
public void excute(String method)
{
if("add".equals(method))
{
System.out.println("执行了添加程序");
}
else if("del".equals(method))
{
System.out.println("执行了删除程序");
}
}
}
/*
结果:
执行了添加程序
*/