Head First 设计模式 —— 09. 模版方法 (Tem

2021-01-12  本文已影响0人  满赋诸机

模板方法模式

在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 P289

09. 模板方法模式
特点

设计原则

好莱坞原则:低层组件别调用高层组件,让高层组件调用低层组件。 P296

优点

思考题

还有哪些模式采用了好莱坞原则? P297

思考题

我们知道应该多用组合,少用继承。 sort() 模板方法的实现决定不使用继承, sort 方法被实现成一个静态的方法,在运行时和 Comparable 组合。这样的做法有何优缺点?你如何处置这个难题?难道 Java 数组让这一切变得特别麻烦吗? P305

优点
缺点
难道 Java 数组让这一切变得特别麻烦吗?

思考题

想一想另一个模式,它是模板方法的一种特殊情况,原语操作用来创建并返回对象。这是什么模式?

所思所想

public Result handleExcel(File excelFile, ExcelConsumer consumer) {
    // 各种校验
    
    boolean success = consumer.consume(excelFile);
    
    // 构建结果封装对象,并返回
}
上一篇 下一篇

猜你喜欢

热点阅读