写完手头的项目,有了闲暇时间看看设计模式,看的一些设计模式的思想,经常不用也就忘得一干二净了,趁着有时间 在 重温重温。/抠鼻/
今天来看看模板设计模式,顾名思义 该模式是用来提供一个模板,也就是指定一套动作的执行顺序。 当我们在实际的开发中遇到 需要执行特定顺序的方法的时候,我们可以考虑一下模板设计模式。
下面我们通过具体的代码来看一下 模板设计模式的特点:(书上代码 类似)
abstract class PreCar {
public abstract void start();
public abstract void bibi();
public abstract void stop();
public void run(){
start();
bibi();
stop();
}
}
public class Car extends PreCar{
@Override
public void start() {
System.out.println("start...");
}
@Override
public void bibi() {
System.out.println("bibi...");
}
@Override
public void stop() {
System.out.println("stop...");
}
public static void main(String[] args) {
Car c=new Car();
c.run();
}
}
我们可以看到,这个run方法,其中已经定下了 特定的方法执行顺序,其中具体方法的执行是在 子类中实现的,可以理解为“父类的方法调用了子类的方法”
模板模式的优点:1.封装父类执行顺序不变,子类实现变化;2.提取公共代码部分,便于维护;3.行为由父类控制,子类实现
缺点:子类对父类产生了影响
使用场景:多个子类有共有的方法,并且逻辑基本相同。