Design Pattern(1)-Template Method Pattern

    xiaoxiao2021-03-25  117

    编程时为了提高复用性、可维护性,我们希望把共性的东西提取到一处,这是很自然的想法。但是往往有的时候不是那么容易提取共性, 因为他只是类似,并非一致,又夹杂着差异。典型的例子是JDBC代码。

    那么为了实现这种情况下的复用,唯有使粒度变小,将基本的原子操作提为共性。 类图如下:

    People类

    public abstract class People { abstract void cookWater(); abstract void cleanVegetable(); abstract void washDishes(); void cook(){ cleanVegetable(); cookWater(); washDishes(); } }

    ConcretePeople_A类

    public class ConcretePeople_A extends People { @Override void cookWater() { System.out.println("A: water has been cooked"); } @Override void cleanVegetable() { System.out.println("A: vegetable has been cleaned"); } @Override void washDishes() { System.out.println("A: dishes have been washed"); } }

    ConcretePeople_B类

    public class ConcretePeople_B extends People { @Override void cookWater() { System.out.println("B: water has been cooked"); } @Override void cleanVegetable() { System.out.println("B: vegetable has been cleaned"); } @Override void washDishes() { System.out.println("B: dishes have been washed"); } }

    main方法:

    public class Main { public static void main(String[] args){ People a=new ConcretePeople_A(); People b=new ConcretePeople_B(); a.cook(); b.cook(); } }
    转载请注明原文地址: https://ju.6miu.com/read-9625.html

    最新回复(0)