Choosing a Custom Controller vs. a Controller Extension

DEX450 - Module 17: Working with Custom Controllers and Controller Extensions

📄 第 429 页 🎬 视频课程

课程章节介绍

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