javascript - 是否有将方法注入(inject)类的设计模式?

标签 javascript oop design-patterns

我有一组协同工作的类(我正在用 javascript 编码)。

有一个父类和若干由父类实例化的子类。我有许多这些类的客户,每个客户都需要向父类或子类添加一个或多个方法。

我不是让每个客户端都从这些类继承,这是可行的但由于子类而变得困惑,我让这些客户端在实例化主类时将函数传递给父类。

主类动态创建方法,客户端可以调用这些方法,就像它们一直存在一样。

我的问题是:

  1. 这样做明智吗?
  2. 对于我正在做的事情,设计模式是什么?

最佳答案

strategy pattern适用于您在运行时获得“策略”的情况。可能适用于此。在这种情况下,策略是一个符合行为的类,即具有“执行”之类的方法。

decorator pattern也可能适用。它也是一种运行时模式,但在方法级别扩充了它正在装饰的类。

因此,如果您动态地选择一个类,那么 Strategy 模式是好的,如果您只是在运行时更改方法实现,则 Decorator 是好的。

(我在 ircmaxell 的许可下使用了这个答案的装饰器部分)

关于javascript - 是否有将方法注入(inject)类的设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869062/

相关文章:

javascript - 当 .src ='' 时,Phonegap 平板电脑无法清除图像

java - 在 Android Webview 中以编程方式填写表单 - JavaScript

C#接口(interface)方法歧义

python - 如何使用 OpenCV Python 检测对象的边缘点?

php - 通过数据映射器处理集合模式中的项目

javascript - 当元素成为 URL 目标时发生的事件

javascript - 条件下拉列表 Javascript 和 HTML

node.js - 使用 OOP 扩展 Node.js 模块

php - 工厂对象创建需要其他对象的对象

c# - 延迟验证