template-method-pattern相关内容

JDK中的模板设计模式,找不到定义要按顺序执行的方法集的方法

我正在阅读模板设计模式.根据我目前的理解,当我们有一个算法,其中有一组定义的过程(方法)要按顺序完成时,可以使用模板设计模式.主要参与者是 1.抽象模板类提供了一个模板方法,定义了过程(方法)和执行顺序.通常这个方法是最终的,所以它的行为不会被修改.模板方法中提到的过程(方法)很少提供默认实现,其他依赖于扩展抽象模板类类型的具体类被保留为抽象. 2.扩展模板方法的具体类.如有必要,它们 ..
发布时间:2021-12-22 09:05:43 Java开发

在 Python 中继承方法的文档字符串

我有一个 OO 层次结构,其中包含与代码本身一样多的维护的文档字符串.例如, class Swallow(object):定义空速(自我):"""返回空速(空载)"""引发 NotImplementedError类非洲燕子(燕子):定义空速(自我):# 任何 现在,问题是 AfricanSwallow.airspeed 没有继承超类方法的文档字符串.我知道我可以使用模板方法模式保留文档字符串, ..
发布时间:2021-12-17 19:33:07 Python

在C#中实现模板方法模式

模板方法模式提供了抽象基类具有不可覆盖的方法:该方法实现通用算法,并且不应在子类中覆盖.在Java中,模板方法在抽象基类中声明为 final ,在C#中, sealed 关键字具有相似的含义,但不能声明未覆盖的方法密封的. 公共抽象类Base{受保护的抽象AlgorithmStep1();受保护的抽象AlgorithmStep2();公共密封void TemplateMethod()//密封:编 ..
发布时间:2021-04-30 19:25:32 C#/.NET

Factory方法模式是Template方法模式的特例吗?

GOF讨论“工厂方法"模式的框架.框架需要对象,但是对象的实现取决于应用程序,因此创建了创建对象的抽象方法.同样,由于需要返回类型,因此定义了所需对象的接口,它定义了对象所需的api.实际对象由子类创建(具体应用程序).这是一种创造模式. 对于Template模式,唯一的变化是封装类不知道某些行为的实现,因此将其抽象为一个方法,使用它,但将实现留给子类.这是行为模式. 两者之间唯一的区 ..

为什么JdbcTemplate是Template方法设计模式的示例

当我的注意力被 在阅读了解释和特定代码之后我仍然想知道为什么这是“模板方法”设计模式的示例。 根据GoF,此模式的目的是: “定义操作中算法的框架,将某些步骤推迟到子类。模板方法允许子类在不更改算法结构的情况下重新定义算法的某些步骤。” 有两个参与者: AbstractClass : -定义抽象的基本操作,具体的子类定义这些操作来实现算法的步骤 -实现模板 ..

属性和方法的Python命名约定将被覆盖

我在Python中有一些面向对象的代码,其中的某些类应进行扩展以提供缺少的自定义代码(请模板方法模式,但也包含变量),该模式只会由超类使用,而不会由使用它们的客户端代码使用. 这样的抽象(或枯燥,因为它们在超类中的实现是pass或引发NonImplemented异常)方法和属性是否存在任何样式约定? 我一直在浏览 PEP-0008 ,并且仅提到将下划线加到不打算由子类使用的 priva ..
发布时间:2020-05-16 20:43:41 Python

我应该使用事件还是“模板方法”开源库的模式?

我正在构建一个可以总结为这样的开源库: class SuperThing { public function doStuff($ object){ // ... } } 我想提供图书馆用户添加自定义行为的可能性。 例如,他可能想要插入一些日志记录或者他可能想在某一点修改对象。 我看到有两种方法: 模板方法模式似乎是合适的, ..
发布时间:2017-05-16 20:14:43 软件设计

构建器模式和模板方法之间的差异(构建器与模板)

模板模式在基类中提供算法,其派生类中的步骤可以被修改。 在Builder模式下,具体的构建者会公开构建从Director类调用的产品的方法。 我明白,使用这些模式。模板模式是改变模板中一个或多个步骤的行为模式,而构建器模式是创建模式。 除了上述差异外,还有其他差异吗? 充当模板模式的基础模板。具体的建设者在模板模式中采用派生类作为替代步骤? 有人可以澄清一点。谢谢。 ..
发布时间:2017-05-16 19:03:24 软件设计

JDK中的模板设计模式,找不到定义要执行的方法集的方法

我正在阅读模板设计模式。根据我目前的理解,当我们有一个具有定义的一组过程(方法)的算法时,可以使用模板设计模式。 主要玩家是 1。抽象模板类提供模板方法定义进程(方法)和执行顺序。通常这种方法是最终的,因为它的行为没有被修改。提供了模板方法中提到的几个进程(方法)默认实现,其他依赖于将抽象模板类类型的具体类放置为抽象。 2。扩展模板方法的具体类。这些覆盖默认方法,如果需要,并提供了抽 ..
发布时间:2017-05-16 18:23:20 Java开发

策略,访问者和模板方法之间的区别是什么?

我正在上课,我们刚刚了解了这些设计模式。但是我看不出有什么区别。他们听起来就像是一样的,在抽象的上面创造了具体的课程。有人可以帮我杀死这个疑问吗?感谢(: 解决方案 访客,策略和模板模式都包含算法的应用,最大的区别是在实践中他们是如何被引用的,以及它们在实践中如何使用,虽然看起来他们有相同的用例,但是看看对象的构造是否有所区别。 当我们没有能力将函数作为第一类对象传递时,通常使用策略 ..

模板方法与策略模式有什么区别?

有人可以向我解释模板方法模式和策略模式之间有什么区别? 据我所知,他们是99%相同 - 唯一的区别是模板方法模式有一个抽象类作为基类,而策略类使用每个具体策略类实现的接口。 但是,就客户端而言,它们的使用方式完全相同 - 这是否正确? 解决方案 两者之间的主要区别是选择具体算法时。 使用模板方法模式,这种情况发生在编译时通过子类化模板。每个子类通过实现模板的抽象方法提供了 ..

我们应该在哪里使用模板方法 - 模式?

任何人都可以让我知道应该使用模板方法 - 模式的一些示例情况? 从我们自己的经验中给我一些现实世界的使用。 > (到目前为止,我发现它只对DA层中的数据进行映射有用。对不起!!!) 解决方案 模板方法模式为执行任何类型的算法或操作提供了一个框架,它允许子类重新定义部分逻辑。 / p> 优点:自然适合构建框架,以便父框架类可以使回调到子程序中实现的方法。 示例: ..
发布时间:2017-05-14 10:16:11 软件设计

Objective-C - 模板方法模式?

所以我一直在阅读关于Objective-C的模板方法,我正在试图了解它们有什么特别之处。从我的理解在Base类中的任何方法都可以被覆盖,超级可以被调用?那么一个模板方法不仅仅是覆盖基类中的一个方法? 如果我错了,你可以解释一个模板方法模式,你可以提供一个例子吗? 解决方案 是的,模板模式不仅仅是覆盖基类中的一个方法 当具体定义算法的轮廓时,可以使用模板模式,然而算法的步骤是抽象 ..