为啥浏览做的网站有移动条,全国网站制作公司,室内设计师需要考什么证,北京网站设计公司youx成都柚米科技15场景#xff1a;
实现一个功能时#xff0c;整体步骤很固定#xff0c;但是#xff0c;某些部分易变。易变部分可以抽象出来#xff0c;供子类实现。
开发中常见的场景
非常繁琐#xff0c;各个框架#xff0c;类库中都有它的影子#xff0c;比如常见的有#xff1…场景
实现一个功能时整体步骤很固定但是某些部分易变。易变部分可以抽象出来供子类实现。
开发中常见的场景
非常繁琐各个框架类库中都有它的影子比如常见的有 数据库访问的封装Junit单元测试servlet中关于doGet/doPost方法调用spring框架中各种Templateshire中权限认证和授权都用到了模板方法模式。
举例代码实现 场景银行办理业务 1.取号2.办理业务/取钱/转账/企业/个人…3.给工作人员评分 代码实现 模板类
public abstract class BankTempLateMethod {//具体方法public void takeNumber(){System.out.println(排队取号。。。。。);}public abstract void transact(); //办理具体的业务 钩子方法//具体方法public void evaluate(){System.out.println(反馈评分。。。。。);}//模板方法public final void process(){takeNumber();transact();evaluate();}
}子类
public class Sub1BankTemplateMethod extends BankTemplateMethod{Overrideprotected void transact() {System.out.println(办理取款业务。。。。。); }
}
public class Sub2BankTemplateMethod extends BankTemplateMethod{Overrideprotected void transact() {System.out.println(办理存钱业务。。。。。); }
}客户调用
/*** 模板方法模式*/
public class App {public static void main(String[] args) {BankTemplateMethod bankTemplateMethod1 new Sub1BankTemplateMethod();bankTemplateMethod1.process();System.out.println(--------------------------------------------------);BankTemplateMethod bankTemplateMethod2 new Sub2BankTemplateMethod();bankTemplateMethod2.process();}
}更多设计模式学习 设计模式(1)介绍 设计模式(2)单例模式 设计模式(3)工厂模式 设计模式(4)建造者模式 设计模式(5)原型模式 设计模式(6)桥接模式 设计模式(7)装饰器模式 设计模式(8)组合模式 设计模式(9)外观模式 设计模式(10)享元模式 设计模式(11)适配器模式 设计模式(12)代理模式 设计模式持续更新中…