
设计模式
文章平均质量分 80
daizhj
这个作者很懒,什么都没留下…
展开
-
Net框架中的设计模式之Builder(构造者)--兼谈抽象工厂和composite模式
上周三听了李建忠先生讲的23种面向对象的设计模式课程之builder(构造者),其中一些内容让我很有体会。当然他所举的造房子的例子讲到最后让我感觉有点“脱靶”,偏离其初衷,这里先不急于解释。 在开始今天的正文之前,首先举两个例子,一个是古代的,一个是当下的。 例子1:(注:本例来自n年前博客园里一位仁兄的忽发奇想,本人觉得有一定道理,原创 2008-08-15 09:17:00 · 1065 阅读 · 0 评论 -
Discuz!NT 缓存设计简析 [原创]
作为一个社区类型软件,大并发支持和高效稳定运行永远是“硬道理”,而有效安全的使用缓存恰恰能起到事倍功半的效果。而.NET本身所提供的缓存机制又显得过于“单薄”,比如说订制不太灵活方便, 缓存对象之间层次感不强, 使用时缺乏统一的管理等等。 Discuz!NT缓存产生背景: 在去年五月份我加入Discuz!NT项目组时原创 2007-08-15 09:33:00 · 1449 阅读 · 1 评论 -
Discuz!NT 邮件插件机制分析
大约还是去年12月份,当时项目中遇到了一个很棘手的问题,就是管理员(或站长)在后台设置了邮箱信息之后,使用注册邮件发送激活验证码时,总有用户反映不能收到激活信息的邮件。 虽然不能收到邮件的情况有很多,甚至我已通过这个邮件发送程序测试过国内大多数知名网站的邮箱(如126,sina ,sohu ,gmail等),但还是有站长或用户隔三差五反映这个问题。甚原创 2007-09-03 11:32:00 · 2069 阅读 · 0 评论 -
Discuz!NT 聚合功能页面程序架构(重构到Facade与Observer模式)
鉴于前一阵子所写的关于Discuz!NT文章在园子中有些朋友存在疑惑这里先做一下声明: 这些关于Discuz!NT的文章不是要帮助大家把这个项目中所有的程序逻辑都解释一遭 (我相信大多数朋友也不希望这么做) 而是希望能给大家提供一把“钥匙”,帮助大家从项目结构和程序架构上先对这个产品有一个初步认识,想信只要有过一定开发项目经验的朋友应该从中原创 2007-09-18 11:31:00 · 871 阅读 · 0 评论 -
Discuz!NT前台模型架构(MVC)
声明:本文内容纯属个人观点,官方保留最终解释 通过前几个月的“外围清剿”,我介绍了一些在项目中边边角角的类和项目。当然这种介绍只是前期热身准备。因为从这篇文章开始,本人将跟大家聊一聊关于这个产品架构上面的东西,以备大家对这个产品有一个总体上的认识,从而为后面的文章做一下铺垫。费话少说,开始正文吧:) 首先请大家看一下官方提供的“前台页面层次图”如下: http:原创 2008-01-02 18:26:00 · 1470 阅读 · 0 评论 -
设计模式之24,"三聚氰胺"模式
最近几天的有毒奶粉事件报道已把我气冒了烟,一方面是对那些因为食用有毒奶粉而不幸住院甚至失去生命的宝宝的深痛同情.另一方面是那些把工业原料加到奶粉中不法牟利的厂家,并且当看到出了人命后还要遮遮盖盖推三阻四,甚至仅以鞠个躬了事.更让人感到气愤,我觉得这样的领导枪毙都不过份!!! 本人在推理这类不法商贩的犯罪心理的基本上,归纳出了这类人进行不法勾当时所使用原创 2008-09-18 09:15:00 · 810 阅读 · 0 评论 -
设计模式三重天[之二]
写作背景: 一直在看关于设计模式的书并不断的实际工作中努力实践,同时也看到了播客园上设计模式团队文章热火朝天的研究和讨论。心里非常高兴,在国内设计模式的研究和使用还不是很丰富和完善的今天,这种讨论无疑会对每个园中的个体还是播客园整体实体的提升有着重大的意义,我非常希望以后想研究.NET程序的人只要知道两个网址就能完成工作中90% 的知识查询,一个是微软的MSDN,一个就是播原创 2006-03-16 11:35:00 · 630 阅读 · 0 评论 -
NET框架中的 Decorator 和 Strategy 模式
NET框架中的 Decorator 和 Strategy 模式 应用场景:net 框架下的TextWriter,HtmlTextWriter,CssTextWriter,IndentedTextWriter 等 先看一下Decorator 模式结构图: NET 下的 Decorator 模式(TextWriter及其派生类): 虽然图形有所原创 2007-07-31 17:34:00 · 728 阅读 · 0 评论 -
Discuz!NT 模板机制分析
作为产品中的一大特色,模板机制一经推出,就引来了大家特别是站长们的关注。但它所饱受的风风雨雨也成了那时不少人关注的话题。而今天本人将结合在产品组中的开发经历,介绍一下模板机制在设计使用时的一些体会心得。希望借此陋文,使模板机制揭开“神秘”面纱,为大家在实际设计中提供一些有价值的参考和建议。 好了,开始今天的话题:) 首先阐述一下模板设计的目标,因为这对原创 2007-12-17 18:28:00 · 2708 阅读 · 0 评论 -
ACE中的设计模式应用场景---模式初学者勿入
最近在整理以前所看文章内容时,发现了几篇2003年程序员合订本里关于 ACE的文章,当年这几篇文章中所谈到的内容就让人非常兴奋,因为在那个国内热火朝天学习设计模式的几年里,这几篇文章因为其内容涉及到了bridge, strategy, adapter, facade等模式在这个网络通信框架中实打实的应用,让我切身体会到了面向对象设计模式的强大火力。同时因为这几篇文章绝不是我们原创 2008-08-18 09:17:00 · 1343 阅读 · 0 评论 -
设计模式三重天[之一]
写作背景: 一直在看关于设计模式的书并不断的实际工作中努力实践,同时也看到了播客园上设计模式团队文章热火朝天的研究和讨论。心里非常高兴,在国内设计模式的研究和使用还不是很丰富和完善的今天,这种讨论无疑会对每个园中的个体还是播客园整体实体的提升有着重大的意义,我非常希望以后想研究.NET程序的人只要知道两个网址就能完成工作中90% 的知识查询,一个是微软的MSDN,一个就是播客园。原创 2006-03-15 16:35:00 · 769 阅读 · 2 评论 -
设计模式三重天[之三]
写作背景: 一直在看关于设计模式的书并不断的实际工作中努力实践,同时也看到了播客园上设计模式团队文章热火朝天的研究和讨论。心里非常高兴,在国内设计模式的研究和使用还不是很丰富和完善的今天,这种讨论无疑会对每个园中的个体还是播客园整体实体的提升有着重大的意义,我非常希望以后想研究.NET程序的人只要知道两个网址就能完成工作中90% 的知识查询,一个是微软的MSDN,一个就是播原创 2006-03-17 13:35:00 · 657 阅读 · 0 评论 -
Refactoring to Patterns 项目实践
摘要:通过重构实现、趋向和去除模式,这是我从Kerievsky那本叫Refactoring to Patterns的书中看到的。而今天文章的内容是一种对其思想的实践案例。有趣的是在这篇文章中所说到的代码开发和重构过程发生在2006年7月份, 而我看到的这本书的相关内容只是两天前的事。我在这里不是想说自已的思想与作者已经走到了一起,而是想说作者的思想也是从实践中来的,而我们的原创 2006-12-21 14:35:00 · 616 阅读 · 0 评论 -
.NET2.0 框架中的 AbstractFactory 模式
由于最近有了宝宝,导致夜里写文章的时间越来越短,而白天又忙于开发。没办法,只有挤时间去写东西了。前些天在园子里看到了这篇文章,http://www.cnblogs.com/Yahong111/archive/2007/07/18/822946.html,对里面写的内容浏览了一下,这里首先对作者的实践精神表示赞赏。我这里只是从别的角度阐述一下AbstractFactory在这种应用场景原创 2007-07-23 13:34:00 · 714 阅读 · 0 评论 -
Discuz!NT 中的数据库链接类(重构到抽象类工厂模式)
在7月份中我曾经写过一篇随笔叫,叫" .NET2.0 框架中的 AbstractFactory 模式 " 。 里面主要说了在2.0框架下的数据库链接工厂中新增的几个类,而这几个类采用的就是 抽象类工厂模式(Abstract Factory)。因为在Discuz!NT 2。0中使用了这些新的类,所以导致我们的产品dbhelper.cs可以支持几种数据库(目前官方实原创 2007-09-24 09:31:00 · 1246 阅读 · 0 评论 -
采用[ICONIX] 方法实践BLOG设计之一 [问题域建模]
前言:自从加入 Discuz!NT开发小组开始。我就放弃了以前的软件设计思想,转而去使用项目组所规范使用的架构设计思想和开发模式来进行开发。这样的时间一直持续到了今天。虽然我向往面向对象的开发方式,且向来对不够OO的设计存有偏见。但人必定要生存,特别是已经做了父亲的程序员来说,这种压力是不容回避的。 但今天开始的这一系列的文章将会说是一次对OO的原创 2007-09-28 11:31:00 · 1513 阅读 · 0 评论 -
NET框架中的 Observer 模式
应用场景:net 框架下的HttpModule (.net2.0 代码) 先看一下 Observer 模式结构图: 再看一下.net框架中的应用结构图 关于HttpApplication.InitModules()函数的调用代码如下 1private void InitModules()2{3 //根原创 2007-08-07 11:34:00 · 764 阅读 · 0 评论