首页 >> 方法大全

模板方法模式

2022-05-14 方法大全 207 作者:考证青年

解决方案

模板方法模式建议将算法分解为一系列步骤,将这些步骤重写为方法,最后在“模板方法”中按顺序调用这些方法。步骤可以是抽象的,也可以有一些默认实现。为了能够使用该算法方法,客户端需要提供自己的子类并实现所有抽象步骤。如有必要,有一些步骤需要重写(但此步骤不包括模板方法本身)。

让我们考虑如何在数据挖掘应用程序中实现上述方案。我们可以为图中的三种解析算法创建一个基类,它将定义调用一系列不同文档处理步骤的模板方法。

方法

模板方法定义了算法的框架

模板方法将算法分解为多个步骤方法,并允许子类覆盖这些步骤,而不是覆盖实际的模板方法。

首先,我们将所有步骤声明为抽象类型,强制子类自行实现这些方法。在我们的例子中,所有必要的实现都已经在子类中,所以我们只需要调整这些方法的签名以匹配超类的签名。

现在,让我们看看如何删除重复代码。不同的数据格式,打开和关闭文件以及提取和解析数据的代码是不同的,所以不需要修改这些方法。但其他步骤,例如分析原始数据和生成报告,实现非常相似,因此可以将它们提取到基类中,以便子类可以共享此代码。

如您所见,我们有两种类型的步骤:

还有另一种称为钩子的步骤。挂钩是内容为空的可选步骤。即使没有覆盖钩子,模板方法也可以工作。钩子通常放置在算法中重要步骤之前和之后,为子类提供额外的算法扩展点。

tags: 算法

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了