NỘI DUNG BÀI VIẾT
Mục tiêu
Luyện tập triển khai template method pattern.
Mô tả
Meal là lớp trừu tượng có một số phương thức
- doMeal() để thực hiện tạo một bữa ăn gồm: chuẩn bị, nấu nướng, ăn, dọn dẹp.
- prepateIngredients() để chuẩn bị nấu ăn
- cook() thực hiện nấu ăn
- eat() thực hiện ăn
- cleanup() thực hiện dọn dẹp
Lớp HamburgerMeal để chuẩn bị bữa ăn với Humburger. Lớp TacoMeal để chuẩn bị bữa ăn với Taco. Viết chương trình thực hiện các lớp trên.
Các bước làm
Bước 1: Tạo lớp Meal
public abstract class Meal { // template method public final void doMeal() { prepareIngredients(); cook(); eat(); cleanUp(); } public abstract void prepareIngredients(); public abstract void cook(); public void eat() { System.out.println("Mmm, that's good"); } public abstract void cleanUp(); }
Bước 2: Tạo lớp HamburgerMeal
public class HamburgerMeal extends Meal { @Override public void prepareIngredients() { System.out.println("Getting burgers, buns, and french fries"); } @Override public void cook() { System.out.println("Cooking burgers on grill and fries in oven"); } @Override public void cleanUp() { System.out.println("Throwing away paper plates"); } }
Bước 3: Tạo lớp TacoMeal
public class TacoMeal extends Meal { @Override public void prepareIngredients() { System.out.println("Getting ground beef and shells"); } @Override public void cook() { System.out.println("Cooking ground beef in pan"); } @Override public void eat() { System.out.println("The tacos are tasty"); } @Override public void cleanUp() { System.out.println("Doing the dishes"); } }
Bước 4: Tạo lớp TemplateMethodDemo
public class TemplateMethodDemo { public static void main(String[] args) { Meal meal1 = new HamburgerMeal(); meal1.doMeal(); System.out.println(); Meal meal2 = new TacoMeal(); meal2.doMeal(); } }
Bước 5: Thực thi chương trình và quan sát kết quả.
Nguồn: https://github.com/codegym-vn/java-web-design-pattern-template-method