Factory Method模式的误区:Factory Method模式是简化版的Abstract Factory吗?
摘要: FactoryMethod是一个相对比较简单的创建型模式,但是能领悟或者用对的并不多见;很多示例都没有反应出Factory Method的核心思想,只是实现了一个简化版的Abstract Factory,然后给出的解释是Factory Method模式解决“单个对象”的需求变化,Abstract Factory 模式解决“系列对象”的需求变化。
试想一下,如果把1视为N的一种特殊情况,则一个产品系列可能只包含一个对象;那么我们是不是可以认为Factory Method是一个简化版的Abstract Factory呢?实际上,Factory Method模式与Abstract Factory模式虽然同属于对象创建型模式,并且AbstractFactory类通常用Factory Method模式实现,并且效果上都可用于连接平行的类层次,但是这两个模式在思想上有着本质的区别。网上的文章抄来抄去,结果错误也被到处传。上一篇介绍了被普遍误用的Builder模式,这篇继续为Factory Method正名。
阅读全文
posted @
2010-09-26 19:50
Silent Void
阅读(5965)
推荐(4) 编辑
反射实现方法调用(1):执行机制
摘要:1. 反射简介 2. 使用反射3. 反射调用方法的执行机制 1. 反射简介 程序集包含模块,而模块包含类型,类型
阅读全文
posted @
2009-03-29 18:52
Silent Void
阅读(2061)
推荐(2) 编辑
EntLib 3.1学习笔记(5) : Exception Handling Application Block
摘要:异常处理应用程序块被设计为支持包含在应用程序组件的 catch 语句中的典型代码。该应用程序块允许开发人员将此逻辑封装为可重用的异常处理程序,而不是在应用程序组件的相同 catch 块中重复这段代码(例如,记录异常信息)。异常处理程序是封装异常处理逻辑和实现名为 IExceptionHandler 的异常处理应用程序块接口的 .NET 类.
阅读全文
posted @
2007-08-16 19:37
Silent Void
阅读(713)
推荐(0) 编辑
EntLib 3.1学习笔记(4) : Logging Application Block
摘要:应用程序可以使用日志块在多个位置记录事件:
(1) 事件日志
(2) 电子邮件
(3) 数据库
(4) 消息队列
(5) 文件
(6) WMI
阅读全文
posted @
2007-08-15 09:06
Silent Void
阅读(1244)
推荐(0) 编辑
EntLib 3.1学习笔记(2) : Data Access Application Block
摘要:简化实现通用数据访问功能的开发任务。应用程序可以在很多情况下使用应用程序块,例如读取显示数据、获得通过应用程序层的数据,以及将更改过的数据提交回数据库系统等。应用程序块包括对存储过程和内嵌 SQL 以及常见内务处理任务(例如,管理连接、创建与缓存封装在应用程序块的方法中的参数)的支持。换句话说,数据访问应用程序块提供对最常用的 ADO.NET 功能的访问。
阅读全文
posted @
2007-08-08 20:32
Silent Void
阅读(1048)
推荐(0) 编辑
EntLib 3.1学习笔记(1) : Caching Application Block
摘要:It supports both an in-memory cache and, optionally, a backing store that can either be the database store or isolated storage. The application block can be used without modification; it provides all the needed functionality to retrieve, add, and remove cached data.
阅读全文
posted @
2007-08-08 20:27
Silent Void
阅读(859)
推荐(0) 编辑
EntLib 3.1学习笔记(0) : 总览
摘要:Enterprise Library 3.1–May 2007 contains the following general purpose application blocks
阅读全文
posted @
2007-08-08 20:15
Silent Void
阅读(644)
推荐(0) 编辑
收集的几篇关于Asp.Net处理原理和URL重写的几篇文章
摘要:HttpApplication 类的实例是在 ASP.NET 基础结构中创建的,而不是由用户直接创建的。HttpApplication 类的一个实例在其生存期内被用于处理多个请求,但它一次只能处理一个请求。这样,成员变量才可用于存储针对每个请求的数据。
应用程序按照以下顺序执行由 global.asax 文件中定义的模块或用户代码处理的事件:
BeginRequest
AuthenticateRequest
PostAuthenticateRequest
AuthorizeRequest
PostAuthorizeRequest
ResolveRequestCache
PostResolveRequestCache
在 PostResolveRequestCache 事件之后、PostMapRequestHandler 事件之前创建一个事件处理程序(对应于请求 URL 的页)。
PostMapRequestHandler
AcquireRequestState
PostAc
阅读全文
posted @
2007-08-06 19:32
Silent Void
阅读(1837)
推荐(0) 编辑
SSL握手过程
摘要:SSL握手有三个目的:
1. 客户端与服务器需要就一组用于保护数据的算法达成一致;
2. 它们需要确立一组由那些算法所使用的加密密钥;
3. 握手还可以选择对客户端进行认证。
阅读全文
posted @
2007-05-14 23:21
Silent Void
阅读(38173)
推荐(2) 编辑
几个常用的位操作
摘要:O(1)判断无符号整数x是否是2的幂;
O(1)判断一个无符号整数是否为2^n-1的形式;
O(1)求整数能被最大的2的幂(?)整除 : 析出最右侧为1的位;
计算整数中有多少个为1的位;
获取下一个具有同样数量的1位的更大的数;应用:在用位串表示集合的子集时
阅读全文
posted @
2007-04-24 13:10
Silent Void
阅读(1218)
推荐(0) 编辑
Effective C# 摘录(4) - 创建二进制组件
摘要:尽可能实现CLS兼容的程序集;尽可能实现短小简洁的函数;尽可能实现小而内聚的程序集;限制类型的可见性;创建大粒度的Web
阅读全文
posted @
2007-04-08 11:28
Silent Void
阅读(788)
推荐(0) 编辑
Effective C# 摘录(1) - C# Language Elements
摘要:C# Language Elements……
阅读全文
posted @
2007-03-15 14:35
Silent Void
阅读(355)
推荐(0) 编辑
排序文件中的N个不重复的正整数
摘要:一个文件中至多包含n个不重复的正整数,每个正整数都小于n,这里n=10^7。要求:以增量的形式输出经排序后的整数....
阅读全文
posted @
2006-12-19 07:19
Silent Void
阅读(1192)
推荐(0) 编辑
[摘自DbC原则与实践]DbC的一些优点和限制
摘要:契约(Contract)就是规范和审核,就是在程序中包含断言,运行时核查这些断言。开发时,如果不希望因检测这些断言而使程序运行变慢,则可以打开或关闭契约检查......
阅读全文
posted @
2006-12-18 07:12
Silent Void
阅读(754)
推荐(0) 编辑