asp.net – 你会认为这是一个单身/单身模式吗?
想象一下,在Global.asax.cs文件中,我将实例类作为私有字段.我们这样说:
private MyClass _myClass = new MyClass(); 我在Global上有一个名为GetMyClass()的静态方法,它获取当前的HttpApplication并返回该实例. public static MyClass GetMyClass() { return ((Global)HttpContext.Current.ApplicationInstance)._myClass; } 因此,我可以通过调用Global.GetMyClass()来获取当前请求httpapplication上的实例. 请记住,有多个(全局)HttpApplication.每个请求都有一个HttpApplication,它们是汇集/共享的,所以在最真实的意义上它不是真正的singleton.但它确实遵循了一定程度的模式. 所以问到这个问题,你至少会考虑这个单身模式吗? 你会说它不应该被使用吗?你会不鼓励使用它吗?你会说这是一个可能不好的做法,就像一个真正的单身人士. 您能否看到此类使用场景可能出现的任何问题? 或者你会说这不是一个真正的单身人士,所以没关系,也不错.你会推荐这个作为半准单身人士,每个请求需要一个实例吗?如果不是你会使用/给出什么其他模式/建议? 你有没有用过这样的东西? 我在过去的项目中使用了这个,但我不确定这是否应该让我远离.我过去从未遇到过任何问题. 请告诉我你对此的看法和意见. 我不是在问单身人士是什么.我认为在使用不当时会出现单身不良行为,这在很多情况下都是如此.那是我.但是,这不是我想要讨论的内容.我试着讨论我给出的这个场景. 解决方法
无论这是否符合Singleton的切割模式,它仍然遇到与Singleton相同的问题:
>它是一个静态的,具体的引用,不能替代单独的行为或在测试期间存根/模拟>您不能对此进行子类化并保留此行为,因此很容易绕过此示例的单例性质 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – Visual Studio 2013项目使它成为武士刀项目是什
- entity-framework – 实体框架Add-Migration失败,出现“找不
- asp.net – 是否可以有条件地包含CSS?
- asp.net – 是否需要resx文件?
- 我是否完全误解了ASP.Net AJAX(更新面板)?
- asp.net-mvc – Sitecore在我的MVC解决方案中提供了一个空白
- 在ASP.NET中检测来自移动浏览器的请求
- ASP.net MVC5中的asp.net-mvc – CORS
- asp.net – System.Web.Cache,会话级别或应用程序级别
- asp.net-mvc – 如何在版本信息中包含静态内容
- asp.net单选按钮分组
- 如何使用ASP.NET MVC 6重定向未经授权的用户
- 在ASP.NET MVC中通过URL路由实现对多语言的支持
- ASP.NET Core 依赖注入基本用法
- Intranet ASP.NET网站的Windows身份验证和重新出
- asp.net-mvc-3 – MVC 3 – 其他视图数据未出现在
- asp.net – 有没有更好的方法将ClientID转换为外
- ASP.Net – App_Data&App_Code文件夹?
- asp.net – InvalidOperationException Nullable
- asp.net-mvc – 将依赖项注入验证属性Web Api As