设计模式
灰太狼
这个作者很懒,什么都没留下…
展开
-
设计模式---单例模式
这应该是设计模式里面最简单的一种了。用于只产生一个实例的情况。单例程序主要注意下面几个问题:1.类要用sealed修饰,不允许被继承2.要使用lock,防止多线程时实例化出来两个实例3.使用double-check实现代码如下:using System;using System.Collections.Generic;using System.Linq;usin原创 2009-11-19 16:42:00 · 1715 阅读 · 6 评论 -
设计模式---工厂模型
下面用工厂模型来实现一个连接数据库的例子。实现在不改变代码的前提下,只通过修改相应的配置文件,就可以达到连接SQL Server和Access的目的。在现实情况中,我们经常遇到同一个程序,在不同的地方要连接不同数据库的问题。为此,我们传统做法是把所有的代码都写在程序中,用if else做判断,然后再选择要连接的数据库。下面的程序使用工厂模型的概念,利用接口来实现在不改变代码的前提下,只需改原创 2009-11-19 16:49:00 · 1709 阅读 · 0 评论 -
设计模式---装饰模式(Decorator)
装饰模式是为已有功能动态地添加更多功能的一种模式。当系统需要新功能时,一般做法是向旧的类中添加新的代码,这些新加的代码通常影响了原有类的核心职责或行为,在主类中加入新的字段、方法或是逻辑,从而增加了主类的复杂性,而这些新加入的代码仅仅是为了满足一些只在某种特定情况下才会发生的特殊行为的需要。装饰模式提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所有要装饰原创 2010-01-20 20:34:00 · 8785 阅读 · 46 评论 -
设计模式---订阅发布模式(Subscribe/Publish)
订阅发布模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。 将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相应对象间的一致性,这样会给维护、扩展和重用都带来不便。当一个对象的改变需要同时改变其他对象,而且它不知道具体有多少对象需要改变时,就可以原创 2010-01-22 10:17:00 · 81873 阅读 · 13 评论 -
SQL Server数据库事务日志存储序列
如果你的数据库运行在完整或是批量日志恢复模式下,那么你就需要使用作业(job)来定期备份事务日志,保持你的事务文件大小处在一个可管理的范围。当你需要还原事务日志时,你就需要按照创建事务日志的顺序来恢复它们。你可以参考存在msdb..backupset表中的信息来确定还原文件的顺序,使用FirstLSN和LastLSN列的值作参考。当你备份时,这些备份信息就会存在backupset表中只翻译 2010-01-24 18:21:00 · 4147 阅读 · 1 评论 -
设计模式---建造者模式
在Gof的23种设计模式中对Builder Pattern的定义是:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 从程序角度来说,就是在基类定义某种事物创建的过程或业务流程,在子类进行重写或是使用基类方法。这样创建出来的实例不会因为过程或流程的丢失而使业务失败。举例来说,我们要建一辆汽车,汽车需要车轮、方向盘、发动机、油门、刹车等上百个设计功能和流程。现在我需原创 2009-12-31 15:06:00 · 2378 阅读 · 8 评论