模板模式
一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要 重写方法实现,但调用将以抽象类中定义的方式进行。
属于 行为型 模式
主要解决:一些方法通用,却在每一个子类都重写了这一方法。
关键代码:在抽象类实现,其他不走在子类实现
优点
1.封装不变部分,扩展可变部分
2.提取公共代码,便于维护
3.行为由父类控制,子类实现。
缺点
每一个不同的实现都需要一个子类实现,导致类的个数增加,使得系统更加庞大。
模板模式组成:
抽象父类(AbstractClass) :实现了模板方法,定义了算法的骨架
具体类(ConcreteClass):实现抽象类中的抽象方法,不同的对象的具体实现细节
举个例子:
就像我们在数据库操作JDBC,
写一个抽象父类用来封装JDBC,
然后具体的sql语句在具体的业务流程中写。