设计模式---模板方法模式

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

  UML图:
  模板方法模式UML图

  简单示例:

public abstract class TemplateMethod{
    //登录验证
    //先验证用户名
    //后验证密码
    public void loginCheck(String username, String password){
        checkUsername(username);
        checkPassword(username, password);
    }

    //验证账号
    protected abstract void checkUsername(String username);

    //验证密码
    protected abstract void checkPassword(String username, String password);

}
//通过数据库数据验证
public class CheckByLib extends TemplateMethod{

    protected void checkUsername(String username){
        System.out.println("通过数据库数据验证账号");
    }

    protected void checkPassword(String username, String password){
        System.out.println("通过数据库数据验证密码");
    }
}

//通过文件数据验证
public class CheckByFile extends TemplateMethod{

    protected void checkUsername(String username){
        System.out.println("通过文件数据验证账号");
    }

    protected void checkPassword(String username, String password){
        System.out.println("通过文件数据验证密码");
    }
}
public class Text{
    public static void main(String[] args){
        TemplateMethod checkByLib = new CheckByLib();
        checkByLib.loginCheck("123","123");

        TemplateMethod checkByFile = new CheckByFile();
        checkByFile.loginCheck("123","123");

    }
}

  优点:① 问题整体的解决思路清晰明了,同时提高了算法的扩展性。
     ②提炼代码(代码的复用)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值