——.NET设计模式系列之七Terrylee,2006年1月概述创建型模式,就是用来创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。本文对五种常用创建型模式进行了比较,通过一个游戏开发场景的例子来说该如何使用创建型模式。为什么需要创建型模式所有的创建型模式都有两个永恒的主旋律:第一,它们都将系统使用哪些具体类的信息封装起来;第二,它们隐藏了这些类的实例是如何被创建和组织的。外界对于这些对象只知道它们共同的接口,而不
系统 2019-08-29 23:41:40 2133
昨晚在家里做那个三层架构的新闻发布系统,做得一半了,今天拿到公司里继续做,在DAL层改了些东西,对DAL层重新生成,发现VS弹出一个对话框,说"项目文件“”已被重命名或已不在解决方案中",经上网查证,发现可能是路径问题吧,只需要在把WEB层中把出错的引用移除,再重新添加引用即可.如图:然后再重新生成DAL层即可生成.项目文件“”已被重命名或已不在解决方案中
系统 2019-08-29 23:28:10 2133
SinceNotificationModelisactuallyatypicalobservermodel,Iwillstartwiththeobservermodel,andevolveittotheNotificationModelinJMX.Simply,theobserverpatternallowsoneobject(theobserver)towatchanotherobject(thesubject),actuallytheobservera
系统 2019-08-29 23:06:57 2133
在Mina的使用中,线程池的配置一个比较关键的环节,同时它也是Mina性能提高的一个有效的方法,在Mina的2.0以上版本中已经不再需要对Mina线程池的配置了,本系列文章都是基于当前的稳定版本Mina1.1.7版来进行讲述的,Mina的2.0以上版本现在还都是M(millestone,即里程碑)版的,在1.5版本上2.0M版为稳定版本,但是在1.5+以上则为非稳定版本,所以,为了更好的进行讨论和学习,还是基于Mina1.1.7版本进行讨论,如果使用Min
系统 2019-08-29 23:01:51 2133
今天去剪了发,没有任何特别的暧昧的理由,只因为头发太长难打理,每天都要扯半天,干脆剪掉算了,去了理发馆,坐了3个小时,剪了个短发,出门觉得好冷,对那些为我保暖却被我遗弃的发丝有些内疚。回到家,脱掉外套,坐在电脑前面,骤然减轻的头让脖子有些不适应,扭头看了看镜子,赫然端坐着一个男孩子,哈。因为新发型带来的陌生感让自己没有心思工作和学习,于是在网上闲逛,看到一篇褒扬某个独自一人去过多个国家旅行的女孩的帖子,还有她的blog,所有的日志都用英文写的,对于独自旅行
系统 2019-08-29 22:56:45 2133
在多线程程序中,我们经常需要对要访问的资源进行加锁。加锁的目的是为了同步对资源的访问,但是,加锁不可避免的会降低应用的并发量。那么如何在需要加锁的时候,尽可能地提高并发量了?下面是我的一些经验,仅供参考。1.首先,我们要控制好锁的粒度。锁的粒度越大,能支持的并发就越小。我们只需要将真正需要同步的代码块lock住,而不需要同步的代码块不要放在lock块中。当然,锁的粒度也不是越小越好,粒度太细的锁会导致编程很繁琐,而且需要足够的细心和全面考虑方可保证锁不会出
系统 2019-08-29 22:43:04 2133
面向服务的体系结构(Service-OrientedArchitecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。松耦合系统的好处有两点,一点是它的灵活性,
系统 2019-08-29 22:42:34 2133
ngx的基本容器ngx_array对应的文件为core/ngx_array.{c|h}ngx_array是nginx内部封装的使用ngx_pool_t对内存池进行分配的数组容器,其中的数据是在一整片内存区中连续存放的。更新数组时只能在尾部压入1个或多个元素。数组的实现结构为structngx_array_s{void*elts;ngx_uint_tnelts;size_tsize;ngx_uint_tnalloc;ngx_pool_t*pool;};其中e
系统 2019-08-29 22:38:33 2133
在开发过程当中,往往会输出一些内容来debug程序,系统的NSLog虽然好用,但如果输出过多时会让你头痛,你根本不知道是在程序的哪儿输出的。于是我们有必要输出更多的信息来标识。下面是一个宏,大家可以参考。//DLogisalmostadrop-inreplacementforNSLog//DLog();//DLog(@"here");//DLog(@"value:%d",x);//UnfortunatelythisdoesntworkDLog(aStrin
系统 2019-08-29 22:35:58 2133
8.2利用配置文件进行输入校验方法说明8.1小节中说明的输入校验方法会让程序产生很多代码。如果是1个项目生命周期很短的项目,必然对时间的要求会很高。这时候利用Struts2来对该项目进行开发,开发者势必不喜欢8.1小节中介绍的输入校验方法。因为代码太多,工作量一下子就增大了不少。而且它是一种硬编码的形式,增大了系统各个模块之间的耦合度,也不利于项目后期的维护和实施。因此本节介绍的利用配置文件进行输入校验的方式则很好的解决了上述问题。利用配置文件进行校验主要
系统 2019-08-29 22:30:29 2133