无废话设计模式(12)行为型模式--模板方法模式
0-前言
模板方法模式定义:定义一个操作中的算法骨架,而将一些步骤延迟到子类中;
模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤;
1-实现
1-1、简单UML图:
1-2、代码实现
//1、抽象父类 abstract class TestPhone { public void PowerOn() { System.out.println("测试开机是否正常"); } public void PowerOff() { System.out.println("测试关机是否正常"); } public void Test() { System.out.println("开始测试手机----------"); PowerOn(); PowerOff(); } } //2-1、具体类A class TestPhoneA extends TestPhone { @Override public void PowerOn() { System.out.println("空电池下测试插电线开机"); super.PowerOn(); } } //2-2、具体类B class TestPhoneB extends TestPhone { @Override public void PowerOff() { System.out.println("测试直接拔电池关机"); super.PowerOff(); } }
客户端:
TestPhone testPhone; testPhone = new TestPhoneA(); testPhone.Test(); testPhone = new TestPhoneB(); testPhone.Test();
运行结果:
2-应用场景简单总结
1、一次性地实现一个算法不变的部分,而将可变的行为留个子类来实现;
2、当子类有公共行为可提取到父类中去,而子类有自己的个性化需求时;