网站建设高端公司,适合做网站的软件有哪些,wordpress 语法,新乡手机网站建设公司模板方法模式
1. 什么是模板方法
模板方法模式#xff1a;定义一个操作中的算法骨架#xff08;父类#xff09;#xff0c;而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构来重定义该算法的
2. 什么时候使用模板方法
实现一些操作时#xff0c…模板方法模式
1. 什么是模板方法
模板方法模式定义一个操作中的算法骨架父类而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构来重定义该算法的
2. 什么时候使用模板方法
实现一些操作时整体步骤很固定但是呢。就是其中一小部分需要改变这时候可以使用模板方法模式将容易变的部分抽象出来供子类实现。
3. 实际开发中应用场景哪里用到了模板方法
其实很多框架中都有用到了模板方法模式 例如数据库访问的封装、Junit单元测试、servlet中关于doGet/doPost方法的调用等等
4. 现实生活中的模板方法
例如
去餐厅吃饭餐厅给我们提供了一个模板就是看菜单点菜吃饭付款走人 这里 “点菜和付款” 是不确定的由子类来完成的其他的则是一个模板。
5.代码实现模板方法模式
先定义一个模板。把模板中的点菜和付款让子类来实现。
package com.lijie;//模板方法
public abstract class RestaurantTemplate {// 1.看菜单public void menu() {System.out.println(看菜单);}// 2.点菜业务abstract void spotMenu();// 3.吃饭业务public void havingDinner(){ System.out.println(吃饭); }// 3.付款业务abstract void payment();// 3.走人public void GoR() { System.out.println(走人); }//模板通用结构public void process(){menu();spotMenu();havingDinner();payment();GoR();}
}
具体的模板方法子类 1
package com.lijie;public class RestaurantGinsengImpl extends RestaurantTemplate {void spotMenu() {System.out.println(人参);}void payment() {System.out.println(5快);}
}
具体的模板方法子类 2
package com.lijie;public class RestaurantLobsterImpl extends RestaurantTemplate {void spotMenu() {System.out.println(龙虾);}void payment() {System.out.println(50块);}
}
客户端测试
package com.lijie;public class Client {public static void main(String[] args) {//调用第一个模板实例RestaurantTemplate restaurantTemplate new RestaurantGinsengImpl();restaurantTemplate.process();}
}