课程章节介绍
今天我们来聊聊Salesforce中的定制控制器和控制器扩展。这两个概念在开发自定义页面时非常重要,但它们的用途和适用场景有所不同。我会尽量用简单的语言来解释,让你更容易理解。
首先,,定制控制器,和,控制器扩展,都是用来控制页面的逻辑的,但它们的使用方式有些不同。
### 1. 定制控制器
定制控制器是一个完全由你编写的控制器,它不依赖于任何标准控制器。你可以把它想象成一个完全自定义的“大脑”,专门为你的页面服务。它适合以下场景:
- ,多个对象平等展示,:如果你的页面需要同时展示多个对象,并且没有一个对象是“主对象”,那么定制控制器是个好选择。
- ,不涉及标准操作,:比如你要做一个多页面的向导,或者一个搜索页面,这些页面不需要标准的保存、删除等操作,定制控制器会更合适。
- ,完全系统上下文,:如果你希望页面在系统上下文中运行(即“不共享”模式),定制控制器可以帮你实现。
### 2. 控制器扩展
控制器扩展则是基于标准控制器的扩展。它依赖于标准控制器的功能,但允许你添加自定义逻辑。控制器扩展适合以下场景:
- ,需要标准控制器功能,:比如你想使用标准控制器的内置保存、删除等功能,但又想添加一些自定义逻辑,这时控制器扩展就很合适。
- ,依赖标准控制器的声明性功能,:比如你想在页面布局中包含某些标准功能,或者通过自定义按钮启动页面,控制器扩展可以帮助你实现。
### 什么时候用定制控制器?什么时候用控制器扩展?
- ,必须用控制器扩展的情况,:如果你需要使用标准控制器的功能(比如内置的保存、删除操作),或者你的页面依赖于标准控制器的声明性功能(比如自定义按钮启动页面),那么你必须使用控制器扩展。
- ,可以考虑定制控制器的情况,:如果你的页面不需要标准控制器的功能,或者你希望页面的逻辑更清晰、更独立,那么定制控制器可能是更好的选择。定制控制器可以让你的代码更简洁,其他开发人员也更容易理解。
### 为什么有时候定制控制器更好?
有时候,虽然你可以用控制器扩展来实现某些功能,但这并不意味着你应该这么做。如果你的页面不需要标准控制器的功能,使用定制控制器可以让代码更清晰,避免不必要的复杂性。特别是当你的页面没有一个明确的“主对象”时,使用定制控制器可以避免随意选择一个对象来使用标准控制器,从而让代码更易读。
总结一下,选择定制控制器还是控制器扩展,主要取决于你的页面需求。如果你需要标准控制器的功能,控制器扩展是必须的;如果你希望页面逻辑更独立、更清晰,定制控制器可能是更好的选择。
希望这个解释对你有帮助!如果有任何问题,随时问我哦!