Fork me on GitHub

08 2012 档案

摘要:我始终认为学习设计模式需要怀着一颗敬畏的心去探索,这一系列23种设计模式并不是一蹴而就,都是前人根据自己的经验逐渐演化出来,所以才会形成非常经典的理论。学习设计模式,我想最好的方式是根据自己的经验逐渐来推导它,这样你才理解了其中奥妙,而不是靠记忆背住了它,所以,这篇博文主要分析三种工厂模式的演变过程:来实现吧,最简单计算器代码能否复用性忘记面向过程吧,面向对象思想的引入多态,简化代码大杀器质的飞跃:简单工厂模式的运用迷途知返:拨开云雾见工厂方法暴走一击:抽象工厂+工厂方法我们先举一个最平常例子——写一个最简单的计算器,我们可能非常快就完成了第一个版本:来实现吧,简易计算器namespace 工 阅读全文
posted @ 2012-08-30 02:51 木宛城主 阅读(3630) 评论(36) 推荐(24) 编辑
摘要:Lambda表达式其实并不陌生,他的前生就是匿名函数,所以要谈Lambda表达式,就不得不谈匿名函数,要谈匿名函数,那又要不得不谈委托。何为委托匿名方法Lambda表达式扩展方法泛型委托A Simple Lambda DemoLambda表达式树何为委托委托非常好理解,类似于C++里面的函数指针(指向了一个方法),并且委托约束了待指向方法的签名(由返回类型和参数组成)。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 委托Test{ delegate bo... 阅读全文
posted @ 2012-08-27 17:25 木宛城主 阅读(23649) 评论(60) 推荐(81) 编辑
摘要:Linq为我们提供了许多扩展方法,方便我们对数据源进行操作(Where,Select...)。即使你不了解算法,也能使用Linq当回牛人。扩展方法本质并不是什么高深的技术,说白了就是一个Static静态方法。声明扩展方法步骤:创建一个名为MyHelper的类,约定了此类中的方法均是扩展方法。注意这个类必须是静态类(Static)扩展方法必须是Static静态方法第一个参数为待扩展的类型,前面标注this如果MyHelper在一个类库中,记得对其添加引用并using相关名称空间A simple exampleusing System;using System.Collections.Generi 阅读全文
posted @ 2012-08-27 13:20 木宛城主 阅读(2568) 评论(1) 推荐(3) 编辑
摘要:上一篇博文《ASP.NET那点不为人知的事(一)》中我们提到HttpApplication有19个标准事件,在HttpApplication的第8个事件PostMapRequestHandlerExcute触发的时候,标志着已经获取了处理当前请求的处理程序对象,在第11个事件PreRequestHandlerExcute之后,HttpApplication将执行这个处理程序,接下来我们继续讨论以下话题:HttpContext状态管理处理HttpApplication的事件常见的HttpModule处理程序处理程序工厂页面处理程序工厂:PageHandlerFactoryReflect反编译网站 阅读全文
posted @ 2012-08-23 04:52 木宛城主 阅读(8976) 评论(31) 推荐(45) 编辑
摘要:我们上网时,在浏览器地址输入网址:Http://www.cnblogs.com,按下回车,一张网页就呈现在我们眼前。这究竟发生了什么?对于一名优秀的Programmer来说,我想有必要一下熟悉浏览器--->服务器请求的过程。ASP.NETASP.NET是运行在公共语言运行时刻时(CLR)上的应用程序框架。他用来在服务器端构建功能强大的web应用程序。当浏览器请求 ASP.NET 文件时,IIS 会把该请求传递给服务器上的 ASP.NET 引擎,ASP.NET 引擎会逐行地读取该文件,并执行文件中的脚本,最后,ASP.NET 文件会以纯 HTML 的形式返回浏览器。客户端浏览器和服务器之间 阅读全文
posted @ 2012-08-13 04:05 木宛城主 阅读(23606) 评论(112) 推荐(150) 编辑
摘要:上一篇文章:庖丁解牛——深入解析委托和事件之后,以一题面试题来总结事件using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace CallChange{ public class Call { static void Main(string[] args) { MessageMonitoring mm = new MessageMonitoring(); ... 阅读全文
posted @ 2012-08-07 02:35 木宛城主 阅读(1271) 评论(1) 推荐(1) 编辑
摘要:开篇我之前发过一篇博文《两天完成一个小型工程报价系统(三层架构)》,不少朋友向我要源码学习,后来久而久之忘记回复了。今天我再分享一个进销存系统,只为学习,没有复杂的框架和设计模式,有的是我个人的理解,大家互相探讨技术才会提高。当然我的命名不是很规范,兄弟们凑合着看。:)思想和架构在传统的三层架构思想上扩展出N层架构,将业务逻辑层换成WCF服务。抽象工厂的引入提高了程序的扩展性,单利+缓存+反射则提升了程序的性能。数据库则换成了Oracle,所以相应的数据访问层也换成了OracleDal,当然你完全可以写SqlServerDal,因为我数据访问层接口都已定义好。界面和控件的设计美化总体思路和流程 阅读全文
posted @ 2012-08-03 06:47 木宛城主 阅读(18652) 评论(48) 推荐(50) 编辑

multifunction lasers
访问人数