2013年11月9日

依赖注入随写

摘要: 遵循接口分离原则是编写健壮可扩展程序的基本要求。软件的复杂性使用不断增加新层的方式解决,而层之间的耦合则依赖接口隔离的方式解决。 工厂模式是接口子类化的经典模式,工厂模式的实现方式,以前的随笔中已经详述过,故略去。这种子类化是一种主动式的子类化方法,调用者主动在需要的时候,进行子类化。而依赖注入模式则是一种被动式的子类化,其接口的子类化由调动者的调用者完成,如名字所述,其子类化的方式依靠反射功能实现注入,具体来分,又分为初始注入和属性赋值注入两种方式。在两种注入模式中,初始注入模式仅调用一次反射完成注入。 下面是一个简单的依赖注入框架: 1.子类化接口与初始注入接口类: 1 p... 阅读全文

posted @ 2013-11-09 11:01 wangjieas 阅读(1128) 评论(0) 推荐(1) 编辑

2013年10月14日

js中的AMD规范

摘要: 回首萧瑟,残月挂角,孤草弄影。 看了一下上一篇随笔的日期,距离上一篇日志又过去了许久。在这段时间中,我尽全力去拯救那间便利店,可惜到最后依然失败,这一次是所有的出路全部没有了,我也做了所有的努力。闲下来来了,补篇日志吧。 今天想写的是js中的AMD规范。AMD,即Asynchronous Module Definition的缩写,它是前端代码大爆炸后,为了更好的管理js代码所做出的一种努力。它来源于commonjs,一个野心勃勃的组织。发展至今已经为许多著名的js库所使用。我最先接触它是在使用nodejs+express+jade进行web编辑的时候,后来一时兴趣又接触到了dojo,再... 阅读全文

posted @ 2013-10-14 10:35 wangjieas 阅读(819) 评论(0) 推荐(1) 编辑

2013年9月10日

简单的mvc之三:灵活的路由(上)

摘要: 在上一篇关于管线的随笔中已经提及了管线,通过对管线的分析,我们可以得到下面几个结论:路由系统由URLRoutingModule模块实现,它订阅了PostResolvRequestCache事件;路由系统通过查阅路由并尽可能的通过RemapHandler方法,确定excuteHandler阶段执行的IHttphandler。这一篇随笔想详细谢谢路由的定义、注册和导航的具体过程。 路由系统的导航过程定义于URLRoutingModule,具体实现如下: 1 public virtual void PostResolveRequestCache(HttpContextBase context)... 阅读全文

posted @ 2013-09-10 11:11 wangjieas 阅读(1360) 评论(1) 推荐(2) 编辑

2013年9月5日

简单的mvc之二:蜿蜒的管线

摘要: 关于系列的第二篇,在管线与路由之间犹豫了很久,最终选择了管线—为免于盲人摸象的困惑。 管线的位置在哪里呢?webform,mvc以及web api都架构于asp.net平台上,管线则是asp.net的中枢。 获取管线,其实就是获取HttpApplication的事件(.net版本不同,管线的组成也不一样)1 public void LinePile()2 {3 foreach (var ev in typeof(HttpApplication).GetEvents()) {4 Response.Write(ev.Name);5 Response.... 阅读全文

posted @ 2013-09-05 08:42 wangjieas 阅读(830) 评论(0) 推荐(0) 编辑

2013年8月29日

简单的mvc之一:简单的开始

摘要: mvc学习到现在,相对所学到的一系列的知识做一个总结,于是就有了这个标题—简单的mvc。文如名,写的是简单的mvc的知识,目标群也不言而喻。这一篇来个简单的开始,从头建立一个web项目,比如hello world。 asp.net项目的请求处理核心是IHttpHandler,不论是之前的Page,还是之后MVC。所以最简单的web项目,就是只有一个IHttpHandler的项目。项目只有两个文件,一个.ashx文件,内容:另外一个是相应的代码文件,建立一个名为Hello的类,也就是上面的Class属性所指向的类别,代码如下:namespace Danyuers.SimpleMvc { ... 阅读全文

posted @ 2013-08-29 10:26 wangjieas 阅读(1681) 评论(5) 推荐(1) 编辑

2013年8月22日

从子类化到工厂模式

摘要: 工厂模式是最常用和最简单的设计模式,其与以抽象、多态为特征的oo结合的十分紧密,在以前的一篇介绍mvc框架切入点的随笔中对这一点就有过论证。 首先看一段代码abstract class Animal { public abstract void Shout();}class Dog : Animal { public override void Shout() { Console.WriteLine("wangwang"); }}class Cat : Animal { public override void Shout() { Co... 阅读全文

posted @ 2013-08-22 09:14 wangjieas 阅读(206) 评论(0) 推荐(0) 编辑

2013年8月11日

js漫谈

摘要: 不久前在武汉这边找到了自己的第一份软件方面工作,当时还很欢喜,可惜最后因为家里的事情,公司的情况等等,最近又成了待业状态,正好安静的考虑一下以后怎么走,是考研还是继续找工作,非计算机专业学生自学找软件方面的工作真心困难。 说了几句闲话,算是甩一甩心中的闷气。写这篇随笔算是为了复习一下js,也是呼应自己很久之前写的那篇漫话js的随笔。在html中,加载js文件的方式一般有两种,一种是以的标签的方式引入,另外一种就是以eval("xx")的方式执行。dojo1.6之前的加载方式使用的ajax+eval的方式来实现按需加载,之后遵循AMD范式,以html页中动态的添加script 阅读全文

posted @ 2013-08-11 09:59 wangjieas 阅读(203) 评论(0) 推荐(0) 编辑

2013年7月12日

asp.net mvc框架的一些切入点

摘要: IhttpModule+配置文件,对请求进行进一步的整理、过滤与转发; global文件中以Application_xx的保护方法进行切入的方式,此方法等同于IHttpModule方法。IHttpModule是它的模块化包装,可重用; IHttpHandler[+配置文件],.ashx/.axd+配置文件,对某类特殊的要求进行专门的处理,略去了routeHander->mvcHandler->controller->action->view这一串基于反射的低效率的执行过程,不过web服务器的瓶颈一般不在计算,而在IO;看到过的例子有用.ashx实现基于长连接轮询等; R 阅读全文

posted @ 2013-07-12 08:59 wangjieas 阅读(964) 评论(2) 推荐(0) 编辑

2013年7月1日

js框架漫谈

摘要: 现在实际项目中可供选择的javascript框架很多,热门的有jquery,dojo,mootools,ext等。这些框架按照不同的标准有不同的分类方法,比如按照扩展方式便可分为prototype式的内置对象方法扩展(mootools算是其改良型)和jquery式的新建对象扩展(jquery对象);按照模块的加载方式分为一次加载方式与按需加载方式,前者以jquery方式较为明显,后者则以dojo框架为标杆,而后者还可以再次细分为同步加载与异步加载的方式(dojo 1.6之前后对比);按照模块的使用对象分为基础框架和UI框架,这两者并不是完全分开,而是相互依靠的关系。 现在前端项目的复杂性... 阅读全文

posted @ 2013-07-01 19:32 wangjieas 阅读(168) 评论(0) 推荐(0) 编辑

导航