问题标签 [pluggable]

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.

0 投票
1 回答
4565 浏览

java - 返回列表的工厂模式

在我的程序中,我将一个文件同时上传到多个服务器,例如 google drive、Dropbox 等。我正在使用适配器设计模式来适配每个服务器 api,因此每个服务器具体类都实现了一个FileServer接口,最后我有一个 FileServer 对象列表。我的问题:由于我的程序将来必须支持新服务器,封装所有服务器对象实例化的最佳方法是什么(我的意思是,“...= new...”部分)?想到的是工厂模式,但是在工厂方法中返回一个列表是否正确?谢谢你。

0 投票
1 回答
787 浏览

nservicebus - 如何在消息处理程序中处理 NServiceBus 子容器?

我正在使用 NServiceBus 4.0.3、StructureMap 2.6.4.0 和 NHibernate

我已将端点配置如下:

我有一个插件系列,我想在运行时获取对象的一个​​实例(不能使用构造函数注入)。

在 StructureMap 世界中,可以使用以下方法完成:

ObjectFactory.GetNamedInstance<ISomething>("familyName");

但是当我使用带有结构映射的 NServiceBus 时,它会为每条消息获取一个嵌套容器。
当我想获取一个对象的实例时,上面的代码只会给我一个来自父容器的实例。由于 ObjectFactory 从未初始化,因此它没有获得实例。

如果我用我的容器初始化 ObjectFactory 的事件,因为它是一个静态包装器,所以在每条消息中使用它是不安全的。

那么如何处理给定消息的子容器,以便我可以使用插件系列?

0 投票
1 回答
281 浏览

c# - .NET 卫星程序集包含代码

我正在研究一个相对复杂的 .NET 应用程序的本地化。要求不仅是翻译 UI 和切换日期和数字格式 - 还要为某些区域设置不同的算法(例如 - 当地税收规则)。

有没有一种简单的方法可以在 .NET 中实现这一点(比如资源的附属程序集)?

0 投票
1 回答
1765 浏览

hadoop - 如何安装 Hadoop 插件或补丁?

有人知道如何在https://issues.apache.org/jira/browse/HDFS-385中安装 Hadoop 补丁吗?

我不知道什么以及如何覆盖原始代码,以便可插拔接口可以工作。

有人可以给我一个提示吗?

谢谢

0 投票
1 回答
258 浏览

design-patterns - 配置文件和可插入代码都是插件架构的答案吗?

我一直在想。好的,我理解为什么我想要可插拔(或者至少是扩展的概念,为我的程序提供额外的生命/功能。)我也理解它如何与代码一起工作,如何做到这一点。

我不明白为什么我不会使用 xml 文件或其他一些配置文件?是否可以通过使用配置文件来创建“可插拔”架构或延长应用程序的寿命?这是否使您的应用程序可插入?

或者,可插拔是否仅仅意味着您可以编写代码来扩展应用程序的应用程序

它是否仅取决于我的应用程序需要什么?

0 投票
1 回答
298 浏览

design-patterns - 如果我编写一个井字游戏,允许程序员更改算法或棋盘,这是一个可插拔的架构吗?

假设我做了一个井字游戏,我使用极小极大来玩人类/计算机对手。其他一些人提出了一个新的决策想法,用代码表达。如果我为他创建了某种方式来使用该算法而不是我的库存算法,而不更改我的原始代码,这是否意味着我已经创建了可插入软件(新的搜索例程不是插件)吗?另外,如果我做到了,那么有人可以写一些方法来改变碎片怎么办?那是剥皮还是可插拔或两者兼而有之?

谢谢。

0 投票
1 回答
45 浏览

java - 哪些扩展/插件/提供者机制可用于使我的 Web 应用程序可扩展?

我正在开发一个能够从不同来源获取数据的 JavaEE Web 应用程序。数据将被提取并保存在数据库中,以供以后处理和报告。我从一个涵盖特定数据源的默认数据提供程序开始,但希望以一种我甚至其他人都可以为不同数据源编写数据提供程序/数据提供程序插件的方式设计应用程序架构。

服务提供者可以独立于核心应用程序来实现,并且可以打包在单独的 jar 中。一旦放到 Web 应用程序类路径中,提供者实现将被触发数据获取作业的应用程序核心识别为服务提供者。

我正在寻找一种实现此 SPI 或扩展点的标准方法,但它不会使我的应用程序代码膨胀。

我想到了“OSGI 扩展点”,但这更多用于 rcp 平台应用程序,而我的是一个 Web 应用程序。所以我暂时排除了。

我的第二个想法是预定义提供者接口的组合,然后使用自定义“提供者”注释来标记实现类(服务提供者)。

您可以推荐哪些机制/方法/框架来解决这个架构问题?

非常感谢和干杯,迈克尔

0 投票
1 回答
51 浏览

java - 如何处理 GlazedLists 对共享发布者和锁的 PluggableList 要求

我刚刚开始在一个广泛使用 beansbinding(MVVM 模式)的 Java 项目中使用 GlazedLists。

PluggableList 允许我将源列表绑定到表,然后在运行时更改源列表。为了实现这一点,每个源列表必须共享相同的 ListEventPublisher 和 ReadWriteLock,因为 PluggableList 必须与其源共享锁和 plublisher。我通过创建一个静态发布者并锁定拥有潜在源列表的类来完成此操作,使用这些静态值在类的每个实例化以及 PluggableList 中创建列表,如下面的伪代码所示:

我对此有两个担忧:

(1) 由于 UiController 中某个组件的特定要求,我必须在 Model 中做出决定。这似乎违反了 MVVM 模式。

(2) 如果列表非常多且被频繁访问,则共享锁可能会影响列表的性能,因为它们都共享相同的锁。这些列表中的每一个都应该能够独立运行而无需相互关心。

我做错了吗?有没有更好的方法让 PluggableLists 工作,而 ModelClass 不必知道特殊的 UiControllerClass 要求并且没有潜在的性能影响?

0 投票
1 回答
3574 浏览

oracle - 在 Oracle 12c 中连接到可插拔数据库的会话

有没有一种方法可以识别与可插拔 Oracle 数据库的连接?我可以使用v$sessionsandv$process视图,但这似乎显示了容器内的所有会话和所有可插入数据库(这些视图上没有关于会话链接到哪个数据库的指示)。

有任何想法吗?

0 投票
0 回答
513 浏览

vb.net - 从 Web 浏览器向应用程序发送命令

我希望能够将数据流从用户计算机发送到网络服务。这应该不会太难 - 我会使用驻留在用户的 Windows 计算机上的 dot-net 编写的应用程序。

然而,棘手的部分是只有当用户点击浏览器中打开的网页中的按钮或链接时,才应该(由应用程序)发送数据流。应用程序本身将在系统托盘中最小化。他应该能够通过单击该网页中的停止按钮(或链接)来停止流。

因此,我在stackoverflow上找到了一些信息,上面说您可以在页面中放置一个链接,例如: [a href='alert:"Hello World" ' ] 并且如果您注册了您的应用程序(在此示例中,该应用程序将被调用“alert.exe”)在注册表中,然后当用户单击链接时,他将启动应用程序,并接收“Hello World”作为参数。

无论如何,我的情况有一些并发症。我希望能够告诉应用程序何时开始发送数据,何时停止发送数据,而无需启动应用程序的新实例。如果用户单击开始,并且应用程序已经打开,我不希望它再次打开。我确实想要一条消息说“开始发送”,如果用户单击停止按钮(或链接)说“停止发送”。用户可能会在会话中多次单击这些网页按钮,我不想每次都关闭并重新打开程序。

所以有几个问题:

  1. 我是否采取了正确的方法?“插件”会更好吗?

  2. 如果我采用正确的方法,是否有某种方法可以将命令从网页发送到应用程序?

  3. 让我的应用程序修改用户计算机的注册表是否安全?

  4. 如果是这样,是否有一组命令可以做到这一点?

  5. Windows 7、Windows 8 等是否支持注册表?我知道它在 Mac 上不受支持。

提前致谢。

PS(有关从浏览器启动应用程序的信息位于:http: //msdn.microsoft.com/en-us/library/ie/aa767914%28v=vs.85%29.aspx)。