[Java] Java设计模式 模板方法模式建模与实现 →→→→→进入此内容的聊天室

来自 , 2020-08-07, 写在 Java, 查看 104 次.
URL http://www.code666.cn/view/83f97f48
  1. /**
  2.  * 示例:模板方法定义了一个算法的步骤,并允许子类为一个或多个步骤提供实现。
  3.  *
  4.  * 以吃饭为例:有几个步骤 --> 煮饭+烧菜+吃饭中+吃完了
  5.  */
  6. abstract class AbstractTemplate {
  7.  
  8.         public final void haveMeal() {
  9.                 zhuFan();
  10.                 shaoCai();
  11.                 duringMeal();
  12.                 finish();
  13.         }
  14.  
  15.         public abstract void zhuFan();
  16.  
  17.         public abstract void shaoCai();
  18.  
  19.         public void duringMeal() {
  20.                 System.out.println("吃饭中...");
  21.         }
  22.  
  23.         public void finish() {
  24.                 System.out.println("吃完了...");
  25.         }
  26. }
  27.  
  28. class Sub1 extends AbstractTemplate {
  29.  
  30.         @Override
  31.         public void zhuFan() {
  32.                 System.out.println("使用电饭煲煮饭...");
  33.  
  34.         }
  35.  
  36.         @Override
  37.         public void shaoCai() {
  38.                 System.out.println("使用炉灶烧菜...");
  39.         }
  40. }
  41.  
  42. class Sub2 extends AbstractTemplate {
  43.  
  44.         @Override
  45.         public void zhuFan() {
  46.                 System.out.println("使用高压锅煮饭...");
  47.  
  48.         }
  49.  
  50.         @Override
  51.         public void shaoCai() {
  52.                 System.out.println("使用电磁炉烧菜...");
  53.         }
  54. }
  55.  
  56. /**
  57.  * 客户端测试类
  58.  *
  59.  * @author Leo
  60.  */
  61. public class Test {
  62.         public static void main(String[] args) {
  63.                 AbstractTemplate at1 = new Sub1();
  64.                 at1.haveMeal();
  65.                 System.out.println("\n");
  66.                 AbstractTemplate at2 = new Sub2();
  67.                 at2.haveMeal();
  68.         }
  69. }//源代码片段来自云代码http://yuncode.net
  70.                        

回复 "Java设计模式 模板方法模式建模与实现"

这儿你可以回复上面这条便签

captcha