相关疑难解决方法(0)

为什么 JdbcTemplate 是模板方法设计模式的一个示例

当我的注意力被这个吸引时,我正在阅读有关设计模式的内容,特别是有关模板方法的内容

\n\n

阅读解释和具体代码后,我仍然想知道为什么这是“模板方法”设计模式的示例。

\n\n

根据 GoF 的说法,这种模式的目的是:

\n\n
\n

\xe2\x80\x9c 定义操作中算法的骨架,将一些步骤推迟到子类。模板方法允许子类重新定义算法的某些步骤,而不更改算法\xe2\x80\x99s 结构。\xe2\x80\x9d

\n
\n\n

并且有两个参与者:

\n\n
\n

AbstractClass
\n - 定义具体子类定义的抽象基元操作,以实现算法的步骤
\n - 实现定义算法骨架的模板方法。模板方法调用原始操作以及 AbstractClass 或其他对象中定义的操作。
\n 具体类
\n 实现原始操作以执行算法的子类特定步骤。

\n
\n\n
\n\n

为什么“JdbcOperations”中的代码被认为是“模板方法”设计模式?

\n\n
    \n
  • 即使我将其与类似文件(如“JmsTemplate”)中的代码进行比较,我也没有看到在超级/抽象类中定义任何“全局/通用”算法。
  • \n
  • 具体类中实现的函数都没有在超类中定义。所有定义的方法都是通过使用接口添加的,在本例中是接口“JdbcOperations”,并且没有一个方法实际上覆盖父级中的方法。
  • \n
\n\n

我发现它对于消除 样板代码非常方便非常方便。但为什么这是一个模板方法而不仅仅是一个漂亮的编码技巧。对我来说,它看起来不像模板方法所具有的任何特征。

\n

java algorithm spring design-patterns template-method-pattern

5
推荐指数
1
解决办法
5020
查看次数