大多数编程语言都有“将库包含到代码中”功能,但功能“将代码包含到库中”?
我的意思是从源中推送到其他文件,而不是从消费文件中提取。
想法很简单 - 我们有一个带有A
类的库B
我们希望扩展B
一些C
函数,但我们不希望通过扩展来实现来自B
,但通过扩展B
。
因此,如果我们有像DLL这样的函数库,我们希望在没有创建新DLL的情况下向该DLL添加函数,并保持调用新函数的能力,就好像我们调用第一个DLL一样。
点不在于拥有DLL源并修改tham,而不是包含该dll中的所有函数只是为了添加少量新函数来创建新的dll,而是在向现有dll添加功能并将该修改后的DLL恢复。没有环绕但插入内部。
如果您发现此问题为问题,请投票重新开启。
如果您要添加一些内容 - 请添加 - 这是社区维基。
答案 0 :(得分:2)
这很大程度上取决于手头的编程语言。
在C ++中,任何模块(因为没有模块)都可以向任何命名空间添加内容。您可以链接两个不同的DLL,它们都将成员添加到同一名称空间。
C#更进了一步,不仅任何人都可以添加到任何名称空间,而且可以使用“扩展方法”将方法添加到现有类中。
在Ruby中,重新打开类只需通过在其他地方定义类的一部分来完成,实际上有一个类的多个定义。但它们都引用同一个类,所以在运行时,它们都归结为同一个类。
在Lua中,您可以使用“模块”功能重新打开模块,并添加您想要的任何内容。
这些都没有实际修改原始代码的“来源” - 但它们提供了自然,无缝的扩展,所以它可能就像你得到的那样接近。