我正在使用插件(付费会员专业版,但这无关紧要),我需要重载该插件中的一个函数。我正在编写一个自定义“插件”,它会更改付费会员专业插件的某些部分。大部分效果都很好。我可以编写优先于同行的模板,但是当我编写一个函数时,我无法从另一个插件中调用它。我想这是出于安全或其他原因,而且是故意的。
我的问题是:是否有一种很好的方法可以覆盖不同功能的某些插件功能?我希望能够更新原始插件而不会失去功能(否则我只会覆盖它)。如果您需要查看任何代码,我会很方便。
答案 0 :(得分:1)
添加功能的最佳方法是分解插件并分离行为。如果插件的设计不具备可扩展性和可定制性,那么您将会遇到困难,特别是如果您希望更新没有重大更改。
例如:您可能需要访问私有函数或属性,如果继承/覆盖,则无法执行此操作。当您更新到新版本的插件时,函数或属性可能会消失。
从非抽象或设计为继承的类继承是代码气味。