当前位置: 首页 > news >正文

基于工作过程的商务网站建设 网页制作深圳软件开发培训

基于工作过程的商务网站建设 网页制作,深圳软件开发培训,济宁门户网站建设,网站正能量免费软件对象的创建方式#xff0c;始终代表了软件工业的生产力方向#xff0c;代表了先进软件技术发展的方向#xff0c;也代表了广大程序开发者的集体智慧。以new的方式创建#xff0c;通过工厂方法#xff0c;利用IoC容器#xff0c;都以不同的方式实现了活生生实例成员的创生…对象的创建方式始终代表了软件工业的生产力方向代表了先进软件技术发展的方向也代表了广大程序开发者的集体智慧。以new的方式创建通过工厂方法利用IoC容器都以不同的方式实现了活生生实例成员的创生。而本文所关注的LazyT也是干这事儿的。不过简单说来LazyT要实现的就是按“需”创建而不是按时创建。 我们往往有这样的情景一个关联对象的创建需要较大的开销为了避免在每次运行时创建这种家伙有一种聪明的办法叫做实现“懒对象”或者延迟加载。.NET 4.0之前实现懒对象的机制需要开发者自己来实现与管理例如你可以翻开老赵同志的较为理想的延迟代理的编写方式一文来了解其原理和场合。可喜的是在.NET 4.0中包含的另一个好玩的家伙System.LazyT。它的定义如下 [Serializable] public class LazyT {public Lazy();public Lazy(bool isThreadSafe);public Lazy(FuncT valueFactory);public Lazy(FuncT valueFactory, bool isThreadSafe);public bool IsValueCreated { get; }public T Value { get; }public override string ToString(); } 注VS2010 Beta2对LazyT和VS2010 Beta1有较大差异因此本文仅以最新版本为标准并不保证最终.NET 4.0正式版的实际情况。 假设我们有一个大块头 public class Big {public int ID { get; set; }// Other resources } 那么可以使用如下的方式来实现Big的延迟创建 static void Main(string[] args) {LazyBig lazyBig new LazyBig(); } 从LazyT的定义可知其Value属性就是我们包装在Lazy Wrapper中的真实Big对象那么当我们第一次访问lazyBig.Value时就回自动的创建Big实例。 static void Main(string[] args) {LazyBig lazyBig new LazyBig();Console.WriteLine(lazyBig.Value.ID); } 当然有其定义可知Lazy远没有这么小儿科它同时还可以为我们提供以下的服务 通过IsValueCreated获取是否“已经”创建了实例对象。解决非默认构造函数问题。 显而易见。我们的Big类并没有提供带参数构造函数那么如下的Big类 public class Big {public Big(int id){this.ID id;}public int ID { get; set; }// Other resources } 上述创建方式将引发运行时异常提示包装对象没有无参的构造函数。那么这种情形下的延迟加载该如何应对呢其实LazyT的构造中还包括 public Lazy(FuncT valueFactory); 它正是用来应对这样的挑战 static void Main(string[] args) {// LazyBig lazyBig new LazyBig();LazyBig lazyBig new LazyBig(() new Big(100));Console.WriteLine(lazyBig.Value.ID); } 其实从public Lazy(FuncT valueFactory)的定义可知valueFactory可以返回任意的T实例那么任何复杂的构造函数对象工厂或者IoC容器方式都可以在此以轻松的方式兼容例如 public class BigFactory {public static Big Build(){return new Big(100);} } 可以应用LazyT和BigFactory实现Big的延迟加载 static void Main(string[] args) {LazyBig lazyBig new LazyBig(() BigFactory.Build());Console.WriteLine(lazyBig.Value.ID); } 提供多线程环境支持。 另外的构造器 public Lazy(bool isThreadSafe); public Lazy(FuncT valueFactory, bool isThreadSafe); 中isThreadSafe则应用于多线程环境下如果isThreadSafe为false那么延迟加载对象则一次只能创建于一个线程。 关于LazyT的应用其实已经不是一个纯粹的语言问题还涉及了对设计的考量例如实现整个对象的延迟加载或者实现延迟属性考量线程安全等等。既然是点滴就不说教太多。因为.NET 4.0提供的关注度实在不少我们眼花缭乱了。 参考文献 Lazy Initialization, http://msdn.microsoft.com/en-us/library/dd997286(VS.100).aspx
http://www.yutouwan.com/news/426666/

相关文章:

  • 高端网站定制公司新手学做网站 iso ed2k
  • 我想做亚马逊网站怎么做租用外国服务器网站网站建设
  • 聊城哪里有做网站的怎样联系网站管理员
  • 瑞安做网站公司长春最新通告今天
  • 住房和城乡建设部网站倪虹好用的seo软件
  • 网站前期基础建设 怎么写百度关键词推广费用
  • 个人网站建设方案策划书免费代理网页
  • goland 网站开发wordpress search制作
  • 在线设计logo免费网站网站建设 考试题目
  • 昆山网站排名优化福州移动网站建设
  • 卡盟网站建设公司微信小程序商城怎么开通
  • 网站专题设计个人网站怎么挣钱
  • 南希网站建设阿里云网站建设 部署与发布答案
  • 台州网站建设制作大型视频网站建设方案
  • 南宁工程建设网站有哪些高端网站建设价格
  • 自己装修怎么出设计图常熟seo网站优化软件
  • 图书馆登录系统网站建设代码wordpress拨号
  • 国外做化工产品的网站网站开发打开世界之窗默认内核
  • 县级门户网站建设运营成本wordpress返回上页
  • 淘宝刷单网站制作演出公司网站建设
  • 临沂做网站建设公司徐州建设工程网官网
  • 沈阳酒店企业网站制作高端网站建设 南京
  • 天津智能网站建设找哪家网络建设公司排名
  • 水务局政务网站建设工作总结宁夏做网站好的公司
  • 常州酒店网站建设山东泰安网络科技有限公司
  • 网站主机一个g商城官方平台入口
  • 网站开发总体设计wordpress 前台登陆
  • 佛山本科网站建设永康好口碑关键词优化
  • 长安网站建设多少钱网页制作软件哪里有
  • 昆明网站制作代理网站一级域名和二级域名区别