基于抽象类的模板设计模式,核心是封装算法。
1、模板方法定义了一个算法的步骤,允许子类为一个或多个步骤提供具体实现。
2、模板(模板方法)模式:(典型:Servlet),AQS
在一个方法中定义算法的框架,将一些具体步骤延迟到子类中实现。
模板模式可以使子类在不改变算法的基础上,重新定义算法中的某些具体步骤。
3.开闭原则(OCP):一个软件实体,如类、函数、模块应对扩展开放,对修改关闭。(Java中最重要的原则)
23种设计模式?23种设计模式详解
第三方解耦(提取公有过程到一个类中—公有类)
咖啡/茶的冲泡法:
两者本质不同,但在冲泡过程中却有相似的步骤:
1.将水煮沸
2.用热水泡饮料
3.把饮料倒进杯子
4.在饮料内加入适当的调料
//设计一个通用的方法来实现冲泡的过程
void prepareRecipe(){
boilWater();
brew();
pourInCup();
addCondiments();
}
模板设计模式:
//模板设计模式
abstract class CaffeineBeverage{
//用同一个方法冲泡茶个咖啡
final void prepareRecipe(){
//final:不希望子类覆盖这个方法
boilWater();//烧水步骤相同
brew();
pourInCup();//倒入杯中步骤相同
addCondiments();
}
abstract void brew();
abstract void addCondiments();
void boilWater(){
System.out.println("Boiling