问题标签 [template-method-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - OOP - “默认”错误的类名?
我正在实现一个模板方法类型的模式,并有几个类来实现该行为。
例如,我的结构如下:
“默认”类包含不需要任何自定义类型的行为。我的问题是,“默认”对班级来说是个坏名字吗?
我想,既然我在问这个问题,我已经对这个名字产生了一些严重的怀疑,但是你还能把一个提供类型之间默认行为的类称为什么?
java - 超类-抽象类中的具体方法
我有一个抽象类 Shape、一些子类和一些方法来计算面积、周长和绘制被覆盖的形状。我试图在这个应用程序的抽象类中找到一个模板方法,但我想不出任何方法。我还没有找到任何通用方法,它们对于所有形状都是相同的,并且也会在 GUI 上产生一些东西。我想在抽象类中有一个方法来比较两个形状的区域,但我无法理解如何做到这一点,因为我认为我不能使用它(指类的实例)一个抽象类。所有形状有什么共同点吗?我的模板方法是什么?谢谢你。
c++ - 是否可以在构造函数中使用模板方法模式?
可能重复:
在构造函数中调用虚函数
我有一个类 Shape 及其子类 Sphere :
现在,如何处理 Shape 构造函数中的子类内容?我可以求助于 模板方法模式,但我将被迫在构造函数中调用纯虚函数;我试过了,编译器不喜欢它
编辑:
我选择在一个新方法“init”中移动构造函数,而虚拟方法将是“subInit”:
它基本上是模板方法模式
客户会写:
然后我有我的答案:在构造函数中应用这种模式是不可能的,至少在 C++ 中是这样
java - 模板方法模式 - 命名约定
我有这个名为RenderableEntity的抽象类。
我有一个公共方法render()
,其中包含一些围绕抽象受保护render()
方法的逻辑。我应该如何命名这个抽象render()
方法。是否有某种约定,例如。doRender()
,makeRender()
对于受保护的方法render()
?
编辑:我知道这个片段不能编译。我只是想知道如何命名这个抽象方法,因为我不能拥有具有相同名称和相同参数的方法。
javascript - JS模板方法模式中`this`的含义
为什么标记的行找不到protectedACMember
?
有模拟私人、受保护和公共成员的好模式吗?静态/非静态也是?
c# - C# 使用设计模式重构具有不同细节的相同操作
我试图找到重构代码的方法,但不知道如何做到这一点。
例如,我们有几个类
后者我需要返回这些类 List、List、List 的对象列表并将它们转换为 Object[][]。
对于每次转换,我都做同样的事情
是否可以使用某种设计模式来分离这种转换?
java - 静态类的模板方法模式
我有一个执行一些工作的 util 类。显然,它对扩展是封闭的,所有方法都是静态的。为简单起见,该类如下所示:
该类具有doWork
执行大量计算的方法。顺便说一句,方法调用辅助方法help
来获取一些结果,其余代码使用help
方法返回的结果。
现在,在客户端代码中我想重用 method 的功能doWork
,但不是调用help
我想调用help2
method. 最简单的解决方案只是创建doWork2
替换help
为的方法help2
。
这是非常糟糕的方法,因为每个更改都doWork
必须在doWork2
其中一个中复制。这与模式非常相似Template Method
,但由于我们这里没有扩展,我们不能应用它。
我想出的最佳解决方案是向此方法添加参数,但保留所有现有用户doWork
:
有哪些更好的设计方案可以用来解决这个问题?有没有办法像有一样实现灵活性Template Pattern
,但在应用程序类中。
提前致谢。
c# - 工厂方法模式和抽象工厂模式
我有一个问题已经在很多方面进行了解释,但仍然没有让我清楚。
- 就抽象工厂模式而言,通过“对象组合”创建对象是什么?
似乎两种模式都使用继承来创建对象。
java - 将 json 通用解析为 java 对象
我有一些 java 类MyClass1
,它们MyClass2
的状态保存在 json 对象中:
现在我想编写一个通用方法来使用net.sf.json
帮助将 Json 对象解析为 Java 对象。
让我们从 MyClass1 开始 - 我想创建一个List<MyClass1>
包含 json 中描述的 2 个对象。
我的第一个问题是 - 第 5 行有效吗?我的第二个问题在第 8 行:在某些时候我想创建一个 type 的对象T
,这可能吗?
非常感谢您的帮助!
编辑:也许这就是我正在寻找的。如果您也可以对编辑发表评论,我将不胜感激。
c# - 没有继承的模板方法模式
如何实现模板方法模式的变体,其中具体类不从基类继承,但保持模式的整体特征。它不能继承的原因是它被迫从另一个类继承,并且多重继承不可用。
例如,假设以下模板方法模式:
在没有 ConcreteClass 继承 BaseClass 的情况下,如何获得相同的结果?