态度决定高度、企图决定版图、格局决定结局

导航

随笔分类 -  Design Pattern

1 2 下一页

Liskov替换原则与继承
摘要:如果一件事情你不能用自己的语言说清楚,那只能说你没有真正的理解它。“只可意会不可言传”在科学领域应该只是一种假象。----废话结束----   一直以来都认为自己搞清楚了何时用继承,何时用聚合,也清楚了所谓的Liskov替换原则的意义。直到今天看完了“高效程序员的十个习惯”以后才明白,才认识到自己以前的理解是混沌含糊的。 何时用继承呢?大部分情况我们... 阅读全文

posted @ 2010-04-30 16:34 flyingchen 阅读(1211) 评论(0) 推荐(0)

CruiseControl.Net学习
摘要:CruiseControl.Net 1.持续集成工具。如果你对敏捷开发有了解,那么自然会知道这个概念。 2.资源:这个工具是Thought works公司开发的开源软件,文档地址:http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET 3.要点: 体系结构: Curi... 阅读全文

posted @ 2007-10-27 20:46 flyingchen 阅读(2524) 评论(1) 推荐(0)

利用委托实现观察者模式
摘要:1using System; 2using System.Collections; 3using System.Collections.Generic; 4 5public class MyClass 6{ 7 public static void Main() 8 { 9 Mouse m = new Mouse(); 10 People... 阅读全文

posted @ 2007-03-09 17:03 flyingchen 阅读(405) 评论(2) 推荐(0)

Refactoring to Composed Method
摘要:组合方法,一个简单的重构实现。通俗的理解就是压缩你的方法体,用一个个小方法来封装(代码层次的封装!封装无所不在阿!)。记得老大(Edward)在关于软件复杂度测量之圈复杂度测量上就有这样一个重构实现。为啥我们需要这样一个实现呢?我个人体会,应该也是最重要的原因就是“降低理解代码的时间“。如果一个方法有着上百行的实现,这个方法理解起来,将是非常痛苦的,如过在加上些全局变量啥的就更加痛苦了!记不清楚... 阅读全文

posted @ 2007-01-28 19:45 flyingchen 阅读(422) 评论(0) 推荐(0)

Refactoring to Patterns 学习笔记
摘要:Refactoring to Patterns Refactoring to Composed Method : http://www.cnblogs.com/flyingchen/archive/2007/01/28/632601.htmlRefactoring to remove Singleton : http://www.cnblogs.com/flyingchen/archive/... 阅读全文

posted @ 2007-01-28 19:27 flyingchen 阅读(447) 评论(0) 推荐(0)

Refactoring to remove Singleton
摘要:重构不仅仅是得到模式,重构也能够Remove模式.因为我们知道模式会带来系统一定程度上理解的复杂性:( -------这个问题确实存在的.尤其系统以后让一个不懂模式的人来维护的话,问题更大!所以用模式要慎重! 内联Singleton这个重构就是为了去除不合适的Singleton. 我们知道,Singleton为了保证系统拥有类的唯一实例,并提供一个全局访问点!从另外一个角度来说,就是搞个不可变的全... 阅读全文

posted @ 2007-01-24 22:14 flyingchen 阅读(295) 评论(0) 推荐(0)

Refactoring to Factory Method
摘要:最近在看,特此体验下:) .从一个简单的模式开始. 我们知道,factory method 是创建型模式中非常简单,却又使用平凡的一种.我一直认为要用反射替代factory method.而今天,我的目的不是展示如何替代它,而是如何一步步的获取它! 开始吧!( 07.1.23.20.51) 1.先写好我们的测试.这个测试是为了测试XMLBuilder,DOMBuilder两个类(都实现了Outpu... 阅读全文

posted @ 2007-01-23 21:00 flyingchen 阅读(291) 评论(0) 推荐(0)

Refactoring to Patterns-----Creation Method
摘要:理解: 在一个类中,经常出现构造函数重载的情况.如果一个类有10个field,那么它可能就会有很多不同的构造器,这些构造器在一定程度上提供了方便,比如可以有选择的选用你需要的构造器去构造对象。随便造个例子,感觉不太合适:) public class People{private string name;private string sex;private int age;private str... 阅读全文

posted @ 2007-01-15 22:59 flyingchen 阅读(307) 评论(1) 推荐(0)

基于Remoting透明代理的AOP实现
摘要:由于某些原因,这2天又拿起了关于AOP方面的资料来学习下。每一次的学习,都有更多的一些认识。在.Net下基于Remoting的实现,应该算是能“最大发挥“的实现了:),动态织入的实现,让其灵活而强大,当然也有其缺陷,比如方法调用要被拦截的类必须继承与ContextBoundObject对象,对于单继承的C#而言,缺陷不小! 参考了Bruce Zhang blog上的AOP资源SqlCenter中A... 阅读全文

posted @ 2006-12-19 22:12 flyingchen 阅读(722) 评论(1) 推荐(0)

Visitor模式学习
摘要:意图: 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 似乎理解很麻烦,其实说白了,就是动态的给已经写好的代码(类)加入新的功能! 当然,首先,需要考虑到这个类将来需要添加功能,留下这么一个坑才行!起对应实现就是在你的类中的Accept方法. 其实,更加通俗点理解.你想给你的类添加功能,要么打开代码直接添加,要么把事情给别人做,然后给外... 阅读全文

posted @ 2006-12-09 22:18 flyingchen 阅读(384) 评论(1) 推荐(0)

Null Object Design Pattern
摘要:From: http://www.cs.oberlin.edu/~jwalker/nullObjPattern/Null Object Pattern Intent Provide an object as a surrogate for the lack of an object of a given type. The Null Object provides intelligent do... 阅读全文

posted @ 2006-12-06 19:56 flyingchen 阅读(1171) 评论(0) 推荐(0)

SqlCenter中的AOP实现
摘要:在SqlCenter项目中实现了基于.Net Remoting 透明代理的AOP框架,取得了非常不错的效果.本文通过验证组件的实现,简单介绍下SqlCenter中AOP 的思想和运用:)验证组件,为了实现对类属性等的约束和判断的轻量级组件. 比如Filed实体中Name不能为空这个约束.对这个约束的判断就可以通过我们的验证组件实现. 如果Field属性Name不能为空这个约束,用常规方法实现,... 阅读全文

posted @ 2006-11-06 21:17 flyingchen 阅读(1882) 评论(7) 推荐(0)

Dynamic Proxy : 动态代理
摘要:转载 http://www.zeroport.netSummary这篇文章介绍了Castle的动态代理是如何实现 AOP 的。 向来我是“拿来主义”,即只管拿来用,不管正在用的东西是怎么实现的。最近由于一直想把 AOP 以及 Io C 等技术加入到项目中,因此对这些技术相当关注。后来选择了CastleProject中的DynamicProxy作为关注对象。不过这次起了贪心,不想再只知道使用,... 阅读全文

posted @ 2006-10-24 20:15 flyingchen 阅读(6837) 评论(6) 推荐(2)

默认适配模式(Default Adapter)
摘要:在研究SQLCenter中,碰到了这个模式的具体运用,非常有启发。分享一下我的体会。在看了很多模式介绍的blogs上,似乎都没有提及这个模式,从中发现了这个模式影子。这个例子的使用似乎不是那么的常用,加之又是Adapter的一个特例,所以相关文章比较少。但是从sqlcenter的运用中,我感觉到这个模式的力量还是巨大的。 1。模式的意图: 为了使原本因为接口不同而不能一起工作的类,通过... 阅读全文

posted @ 2006-10-22 21:42 flyingchen 阅读(2520) 评论(15) 推荐(0)

关于AOP
摘要:看了几天的Spring.Net,感受还是很多的.准备写点笔记.这里先贴些资源连接:Spring.Net : http://www.springframework.net/doc/reference/html/index.htmlSpring 中文手册: http://www.jactiongroup.net/reference2/html/AOP Home: http://aosd.net/J道... 阅读全文

posted @ 2006-10-21 19:56 flyingchen 阅读(356) 评论(2) 推荐(0)

SQLCenter和IoC模式
摘要:在学习SQLCenter的时候,对老大说的Generators设计中用到了默认代理模式和Ioc模式有点问题。刚才晚上又重新看了下,哈哈,有点醍醐灌顶的感觉。确实如此。下面写写自己的体会。默认代理模式就不多说了。主要看Ioc的体现,因为最近我正在学习Spring.Net,所以对Ioc,AOP这样的字眼特别敏感。关于Ioc,园子里面有太多的好文章。我简单描述我的感觉,同时联系下SQLCenter. I... 阅读全文

posted @ 2006-10-18 21:38 flyingchen 阅读(1365) 评论(2) 推荐(0)

学会思考
摘要:已经很久没有更新blog了。这些天一直为一个自命名为“资源编辑器”的小项目而忙碌。今天终于给我的老大交了“成果”,先也不管老大如何臭骂我等小子的无知和狂妄,先给自己定个基调再说。 项目虽然很小,但五脏俱全。从需求分析,到设计,到编码实现等等都有一定的规范,当然只是一定程度上的。所以,从这个个小小的项目中我学习到之前所无法体会的设计的快乐(Happy for Desig... 阅读全文

posted @ 2006-09-25 22:06 flyingchen 阅读(712) 评论(3) 推荐(0)

《Test-Driven Development》学习点滴记录
摘要:1.当我们开始某一项工作时,我们需要建立一个计划清单(to-do list),以提醒我们需要做些什么事情。 comment:从小学的时候,老师就开始这样说了。诶,都二十多年了,还是没有做到:( 2.记住,我们不是从建立对象开始,而是从测试开始 3.尽快使测试运行起来: a .伪代码:返回一个变量,并逐渐用变量替代常量,直至伪代码都变成真实代码。 b. 显示实现:将真实的实现键入。 4.... 阅读全文

posted @ 2006-09-07 22:20 flyingchen 阅读(317) 评论(0) 推荐(0)

Copy & Clone
摘要:最近在写SqlCenter的测试的时候,经常要写Clone和Copy的测试。由于这个需要,好好的温习了下Clone(Shallow Copy)和 Copy(Deep Copy). 我们知道: Clone,浅拷贝,它的实现就是把要拷贝的对象的值,一一的赋值给要拷贝的对象。这里要注意:一一赋值。如果是堆对象,其实就是类似于C语言中的指针拷贝。 C... 阅读全文

posted @ 2006-09-07 21:38 flyingchen 阅读(1714) 评论(2) 推荐(0)

欢迎加入模式学习群(26227899 )(http://designpatterns.cnblogs.com/)
摘要:一个非常认真的朋友,在他的设计模式学习群中这样说到:2006-09-02 20:50:17 肖鹏学习模式能同时掌握内涵和实现当然最好 2006-09-02 20:50:43 肖鹏如果不能可以先模仿实现 2006-09-02 20:52:02 肖鹏学习其他技术也是一样的,先过度使用之然后发现其边界和内涵 2006-09-02 20:52:20 肖鹏当然这也不是我说的,MartinFlower说... 阅读全文

posted @ 2006-09-02 21:10 flyingchen 阅读(266) 评论(0) 推荐(0)

1 2 下一页