JAVA设计模式之【模板方法模式】

模板方法模式
	提高代码的复用性
	把常用的基本方法放入父类中
	强调一种流程步骤
	角色
		抽象类
			抽象方法
			具体方法
			钩子方法
				空方法
				通过bool控制
		具体类

看例子

1.银行模板类

package TemplateMethod;

/**
 * Created by Jiqing on 2016/10/31.
 */
public abstract class BankTemplateMethod
{
    public void takeNumber()
    {
        System.out.println("取号排队。");
    }

    public abstract void transact();

    public void evaluate()
    {
        System.out.println("反馈评分。");
    }

    public void process()
    {
        this.takeNumber();
        this.transact();
        this.evaluate();
    }
}

2.具体业务

package TemplateMethod;

/**
 * Created by Jiqing on 2016/10/31.
 */
public class Deposit extends BankTemplateMethod
{
    public void transact()
    {
        System.out.println("存款");
    }
}
package TemplateMethod;

/**
 * Created by Jiqing on 2016/10/31.
 */
public class Transfer extends BankTemplateMethod
{
    public void transact()
    {
        System.out.println("转账");
    }
}
package TemplateMethod;

/**
 * Created by Jiqing on 2016/10/31.
 */
public class Withdraw extends BankTemplateMethod
{
    public void transact()
    {
        System.out.println("取款");
    }
}

4.客户端


package TemplateMethod;

/**
 * Created by Jiqing on 2016/10/31.
 */
public class Client
{
    public static void main(String a[])
    {
        BankTemplateMethod bank;
        bank=new Deposit();
        bank.process();
        System.out.println("---------------------------------------");
        bank = new Transfer();
        bank.process();

    }
}

结果:

取号排队。
存款
反馈评分。
---------------------------------------
取号排队。
转账
反馈评分。

posted @ 2016-10-31 00:34  TBHacker  阅读(991)  评论(0编辑  收藏  举报