Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 我可以从扩展包向salesforce基本包页面添加元素吗?_Design Patterns_Package_Salesforce - Fatal编程技术网

Design patterns 我可以从扩展包向salesforce基本包页面添加元素吗?

Design patterns 我可以从扩展包向salesforce基本包页面添加元素吗?,design-patterns,package,salesforce,Design Patterns,Package,Salesforce,我们正在开发一个包含扩展的Salesforce软件包。我们的想法是在基本软件包中提供基本功能,并作为软件包扩展提供单独的额外功能(使用单独的许可证和价格) 但是,在安装扩展时,我们需要向基本包中注入一些额外的元素。这种需要的例子有: 在apex:pageBlockButtons元素上添加一个附加按钮。或者,一般来说,在基本包的visualforce页面中添加额外的html片段(我们可以称之为小部件) 在基本包控制器上的进程期间执行附加逻辑 那么问题是:Salesforce上是否有一个标准功能

我们正在开发一个包含扩展的Salesforce软件包。我们的想法是在基本软件包中提供基本功能,并作为软件包扩展提供单独的额外功能(使用单独的许可证和价格)

但是,在安装扩展时,我们需要向基本包中注入一些额外的元素。这种需要的例子有:

  • 在apex:pageBlockButtons元素上添加一个附加按钮。或者,一般来说,在基本包的visualforce页面中添加额外的html片段(我们可以称之为小部件)
  • 在基本包控制器上的进程期间执行附加逻辑

那么问题是:Salesforce上是否有一个标准功能允许我们实现这些结果?如果没有,是否有一种设计模式可以应用于实现类似的功能?

您可以使用最近推出的[apex reflection][1](阅读:新功能,小心bug!)来看看

对于附加逻辑,在基本包中定义一个接口。扩展包添加了一个新的实现,并在自定义设置(基本包的一部分)中“注册”类名。然后让您的代码检查任何条目的自定义设置,如果有,则运行处理附加逻辑所需的任何方法

对于visualforce页面,您可以执行类似的操作,但是扩展包接口类将使用DynamicVisualForce添加按钮


更简单的是,只需在扩展包中创建一些工件,可能是一个静态资源,但可以是基础包可以检查的任何东西。如果基本包查找工件并找到它,请打开增强的功能。希望这能让大脑活跃起来。

你可以看看最近推出的[apex reflection][1](阅读:新功能,小心bug!)

对于附加逻辑,在基本包中定义一个接口。扩展包添加了一个新的实现,并在自定义设置(基本包的一部分)中“注册”类名。然后让您的代码检查任何条目的自定义设置,如果有,则运行处理附加逻辑所需的任何方法

对于visualforce页面,您可以执行类似的操作,但是扩展包接口类将使用DynamicVisualForce添加按钮

更简单的是,只需在扩展包中创建一些工件,可能是一个静态资源,但可以是基础包可以检查的任何东西。如果基本包查找工件并找到它,请打开增强的功能。希望能让脑汁流动起来