- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我看了更多关于 MVC 的教程。但我不明白,人们使用“BaseController”做什么?在一个项目中,有人用它来进行所有 Controller 之间的通信。在其他项目中有人用于获取日志。你能给我解释清楚吗?
最佳答案
对于一些开发人员来说,创建一个“BaseController”或实际上是一个 BaseAnything 类以用于通用功能,然后从该 BaseWhatever 派生其他东西以重用该功能是一种非常常见的做法。这只是基本的面向对象编程技术,与 MVC 没有任何具体关系(除了我们在本例中专门讨论 BaseController 的事实)。
有一些人,我恰好也在其中,他们认为显式基类通常是一种代码味道,并且经常被严重滥用为“包罗万象”。很多时候,人们为了方便而将各种东西放在这些基类中,因为它比创建一些其他机制更容易以更好的方式共享代码或数据。
除非绝对必要,否则我避免使用基类。我倾向于使用其他方法来实现通常以这种方式实现的功能(我称之为惰性重用)。替代方案的例子是:
你可能出于好意创建了一个基类,并声称它只会用于非常有限的功能......但在你意识到之前,其他在你的项目中开发的人正在往里面塞各种东西那里。
我的规则是,不要这样做。不惜一切代价避免创建基类,除非确实没有其他好的方法。
*注意:我指的是用于共享实现/数据的唯一目的的具体基类。通用和抽象基类有点不同,用于分类法(即 is-a 关系)和分层目的的基类也是如此。一般来说,如果你调用了 FooBase 或 BaseFoo,它可能是这种类型。
此规则也有其他异常(exception)情况,例如当出于测试目的包装不可测试的类时,您通常会为此目的创建一个基类,或者在框架中有时您会故意构建一个旨在被继承的基类,但不是通用的或抽象的。它在那里提供适合框架的功能。但是,这些并不是您在使用这些框架时通常可以控制的事情。
关于asp.net - BaseController 在 MVC 中的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28919647/
默认的 HomeController 类是使用定义的 class HomeController extends BaseController { 但是,当通过 artisan 创建资源 Control
我有一个 BaseController,如下所示: public class BaseController : Controller { string ApplicationName;
我有一个 basecontroller,其属性如下: public class BaseController : Controller { public User CurrentUser {g
我有以下 BaseApiController: public class BaseApiController : ApiController { public readonly Current
我有一个定义如下的基本 Controller ,但是采用 ISiteService 的构造函数永远不会执行: public class BaseController : Controller {
我已经在 Silex 1.3.4 中创建了一个简单的应用程序,我想要一个基本 Controller ,它有一个接受 $app 和 $request 的 __construct 方法。所有继承的 Con
我有一类属性,这些属性是从我需要在我的 MVC 应用程序的每个 View 上都可用的服务中设置的。 因此,我创建了一个“基础 View 模型”,我的 View 模型将从中继承。 public clas
我应该创建一个包含多个部分的网站。这些部分的功能和 View 完全相同,但我想要不同的 URL,例如 //localhost:111/Works/索引 //localhost:111/OldJobs/
我有一个与 Entity Framework 通信的基础 Controller 。我正在创建一个 dbContext 来与基本 Controller 中的实体对话。当我将家庭 Controller 继
在我的 Global.asax 中,我在 Session_Start() 中有这段代码: UserIntranet user = new UserIntranet(); user.Login = th
我有一个这样的管理命名空间: namespace :admin do resources :users resources :base end 目录结构如下: /app/con
我需要所有 Controller 中的一些通用行为。有一个 BaseController 并让所有 Controller 都扩展该类是个好主意吗?如果是这样,避免 Fatal error: Class
我看了更多关于 MVC 的教程。但我不明白,人们使用“BaseController”做什么?在一个项目中,有人用它来进行所有 Controller 之间的通信。在其他项目中有人用于获取日志。你能给我解
我正在尝试构建我的 Laravel 4 站点,以便 (1) 主要应用程序组的组件( Controller / View /等)耦合在一起,以及 (2) Laravel 的支持代码位于我的 Web 服务
我需要执行以下操作:我已经准备好一些 Controller 并正在运行,但现在我想创建一个 BaseController。我的每个 Controller 都应该像这样继承它: public class
我目前正在努力让 WebApi 中的继承像我想要的那样工作。也许你能给我指出正确的方向? 我的目标是拥有一个通用的 WebApi 项目,它可以在多个其他 WebApi 项目中重复使用。 例如:我有一个
我想重构我的基本 CRUD 操作,因为它们非常重复,但我不确定最好的方法。我所有的 Controller 都继承了 BaseController,它看起来像这样: public class BaseC
我正在尝试在所有 ASP.Net MVC Controller 中共享我的 IMapper Mapper 静态类。但是不知道如何创建从基本 Controller 派生的 Controller 。 我尝
我在 app/controllers/v1/white_label_api 中创建 Controller class Api::WhiteLabel::V1::BaseController < App
我创建了一个 BaseController,我将它混入其他 Controller 。 例子: class BaseController () { def somemethod () { r
我是一名优秀的程序员,十分优秀!