代码改变世界

随笔分类 -  设计模式

大家一起学面向对象设计模式系列Chapter 04 建造者(Builder)

2009-03-18 14:44 by GUO Xingwang, 1968 阅读, 收藏, 编辑
摘要: 这一篇我将向大家讲解建造者(Builder)模式。在上一篇文章中我们主要学习了抽象工厂(Abstract Factory)模式,抽象工厂模式主要解决对不同等级结构的产品的创建工作,主要关注的是创建哪一批产品的问题,而本文所讲的建造者模式主要是解决对于一个产品如何分部创建的问题,这是对于建造者模式的最初描述。同样,这篇文章主要分为两大部分来讲解,第一部分我会对建造者模式的原型进行详细的说明,第二部分会对建造者模式如何解决具体问题进行探讨。 阅读全文

大家一起学面向对象设计模式系列Chapter 27 附录--61条面向对象设计的经验原则

2009-03-16 17:48 by GUO Xingwang, 871 阅读, 收藏, 编辑
摘要: 我觉得这61条经验原则说的很好,所以我把它作为设计模式系列的一个附录贴到这里提供给大家参考(实际上与设计模式关系不大)。对于每一条原则我们都可以进行深入的思考,理解其中的内涵,遵循这些原则的设计可能在复用性和扩展性上会更好些。 阅读全文

大家一起学面向对象设计模式系列Chapter 03 抽象工厂(Abstract Factory)

2009-03-16 17:43 by GUO Xingwang, 2324 阅读, 收藏, 编辑
摘要: 这篇文章主要分为两大部分内容,在第一部分中我将介绍抽象工厂模式的原型,包括抽象工厂的意图,可以解决的问题,原型代码和UML等,再结合一个生活中的小例子进行原型的说明。第二部分我会结合实际项目来讲述一下抽象工厂模式是如何应用的。最后我会对抽象工厂模式进行一个小结。 阅读全文

大家一起学面向对象设计模式系列Chapter 02 软件设计的基本原则

2009-03-13 16:51 by GUO Xingwang, 2006 阅读, 收藏, 编辑
摘要: 我们为什么要使用设计模式呢?有人可能会说为了设计出"高内聚低耦合"的软件。"高内聚低耦合"的软件实际上也就是本文所说的具有可维护性和可复用性的软件。 阅读全文

大家一起学面向对象设计模式系列Chapter 01 本系列介绍

2009-03-13 10:43 by GUO Xingwang, 2118 阅读, 收藏, 编辑
摘要: 大家好,几个月后我又开始写文章了,上一关于BlogEngine.Net的系列得到很多园友的支持,让我体会到了分享的快乐。这是我的新系列,主要是讲解GOF23种设计模式的文章。其实,这是一个被讲得很多的一个话题,博客园中关于设计模式的文章太多了,例如TerryLee的.NET设计模式系列等。不过好的东西不怕被讲烂,可能讲法不一样给大家带来的收获也不一样,对于我来说,其实基本上博客园中任何一篇文章都可以给我带来新的收获。 阅读全文

大家一起学面向对象设计模式系列 索引贴

2009-03-13 10:42 by GUO Xingwang, 2844 阅读, 收藏, 编辑
摘要: 为方便大家阅读,特制作索引贴.Welcome to share your idea,thank you!欢迎分享您的想法,谢谢! 阅读全文

BlogEngine.Net架构与源代码分析系列part8:扩展——DataStore分析

2008-11-10 17:39 by GUO Xingwang, 4978 阅读, 收藏, 编辑
摘要: 本系列的第四篇文章我给大家做了关于BlogEngine.Net全局配置的分析。在这篇文章里我将会对BlogEngine.Net中比较经典的部分DataStore做一个简单的分析,这个DataStore主要完成了BlogEngine.Net三大扩展特性(Extension,Widget,Theme)的数据存储部分,它提供了一个扩展特性统一的存储模型。DataStore是建立在Provider存储(本系列第三篇文章中介绍过)的上层,本文研究的内容会和后面讲到的扩展部分的文章有一定联系,希望大家继续关注。 阅读全文

BlogEngine.Net架构与源代码分析系列part3:数据存储——基于Provider模式的实现

2008-11-05 15:35 by GUO Xingwang, 8338 阅读, 收藏, 编辑
摘要: 在上一篇文章中,我们主要分析了一下BlogEngine.Net的整体设计,在后半部分我们又对BusinessBase业务对象的状态维护做了一些比较深入的探讨。在这篇文章中我将引领大家完成对BlogEngine.Net中业务对象数据存储的设计思路与实现细节的分析。 阅读全文

对于一道面试题的一点看法

2008-07-14 16:21 by GUO Xingwang, 3077 阅读, 收藏, 编辑
摘要: 为什么我们要面向对象设计,为什么要使用设计模式.主要就是面向对象设计可以非常好的描述出事物本来的面目.事物的存在就有它存在的理由,这是自然规律,所以按照事物本身的特征去描述它自然也就是合理的.软件设计就是如此. 阅读全文

一个自己写的组件--异常报告(2):组件的重构和配置

2008-07-03 20:40 by GUO Xingwang, 1768 阅读, 收藏, 编辑
摘要: 在上一篇文章中我对异常报告组件MyDebuger做了一个一般性的介绍并用简单的C#对其进行了实现,发表之后网友们提出了一些建议,也提出了一些Bug。在这里,非常感谢来自你们的建议,我从中领略到了社区对于软件开发的重要性,社区的意见是宝贵的。其中有一位朋友说"虽然能看懂但是代码逻辑混乱,应该好好重构下",还有人说那个Debuger.Debug()方法中的obj为空的问题.自己仔细的考虑了一下,可能确实比较混乱,于是在这一篇文章中我将着力讲述我对MyDebuger组件是怎样进行重构的,并对上一节提到的配置问题进行了实现(实现的可能不太好,但是已经基本满足需求了).花了一整天时间,希望这次会好一点。 阅读全文