设计模式:在编码过程中对通用的处理方式,方法进行抽取,精炼编程的方法
Java中常用的设计模式有23种。
开闭原则(OCP):类,模块,函数应该对修改关闭,对扩展开放,java的代码应遵循开闭原则
一个抽象类:定义模板方法,定义了一套执行逻辑顺序
几个抽象类的实现
如果煮饮品的过程是这样的:
public class TemplateDesignPattern{
public static void main(String[] args){
Coffer coffer = new Coffer();
coffer.boilCoffer();//煮咖啡的过程
Tea tea = new Tea();
tea.boilTea();//煮茶的过程
}
}
class Coffer{
public void boilCoffer(){
this.boilWater();
this.waterInputCup();
this.cofferInputWater();
this.sugarInputCoffer();
}
public void boilWater(){
System.out.println("1、烧水");
}
public void waterInputCup(){
System.out.println("2、水倒入杯子中");
}
public void cofferInputWater(){
System.out.println("3、咖啡倒入水中");
}
public void sugarInputCoffer(){
System.out.println("4、咖啡中加入糖");
}
}
class Tea{
public void boilTea(){
this.boilWater();
this.waterInputCup();
this.teaInputWater();
this.lemonInputTea();
}
public void boilWater(){
System.out.println("1、烧水");
}
public void waterInputCup(){
System.out.println("2、水倒入杯子中");
}
public void teaInputWater(){
System.out.println("3、茶倒入水中");
}
public void lemonInputTea(){
System.out.println("4、茶中加入柠檬");
}
}
那么有模板设计模式,那你煮饮品的过程会变为这个样子:
不希望被子类覆写的方法用final修饰
public class TemplateDesignPattern{
public static void main(String[] args){
Coffer coffer = new Coffer();
coffer.makeDrink();//煮咖啡的过程
Tea tea = new Tea();
tea.makeDrink();//煮茶的过程
}
}
abstract class Drink{
//制作饮品------>这就是模板,定义了一套执行逻辑顺序(算法:解决问题的一系列流程)
public final void makeDrink(){
this.boilWater();
this.waterInputCup();
this.mainIngredient();
this.minorIngredient();
}
//不希望被子类覆写:final
public final void boilWater(){
System.out.println("1、烧水");
}
public final void waterInputCup(){
System.out.println("2、水倒入杯子中");
}
//主料
public abstract void mainIngredient();
//辅料
public abstract void minorIngredient();
}
class Coffer extends Drink{
public void mainIngredient(){
System.out.println("3、咖啡倒入水中");
}
public void minorIngredient(){
System.out.println("4、咖啡中加入糖");
}
}
class Tea extends Drink{
public void mainIngredient(){
System.out.println("3、茶倒入水中");
}
public void minorIngredient(){
System.out.println("4、茶中加入柠檬");
}
}
本文深入探讨了设计模式中的模板设计模式,通过煮饮品的过程详细解释了如何使用抽象类定义一套执行逻辑顺序,以及如何通过子类实现具体的操作。介绍了模板设计模式在Java中的应用,展示了如何遵循开闭原则,对修改关闭,对扩展开放。
1472

被折叠的 条评论
为什么被折叠?



