2007年8月13日
摘要: 我的理解:命令池(采用堆或栈皆可)维护着一组命令集合。只要这些命令实现同个命令接口或者命令抽象类,就能够被命令池依次执行。 class App{ static void Main() { //命令模式:将无论哪个实例的方法抽象成对应的命令放入命令池。命令池会自动执行。 Printer printer = new Printer(); Scann... 阅读全文
posted @ 2007-08-13 18:41 宝气狗 阅读(296) 评论(0) 推荐(0)
摘要: 我的理解:状态模式类似于策略模式([设计模式] 23.Strategy 策略模式),将状态的变化抽象出来(状态的抽象类)。不同的状态继承这个状态抽象类。并实现该状态下方法的变动。与策略模式不同的是,抽象类中一般还维护着各状态的变动。下面举例: public class Elevator{ ElevatorState _elevatorState; public Elevator() { _ele... 阅读全文
posted @ 2007-08-13 18:25 宝气狗 阅读(300) 评论(0) 推荐(0)
摘要: 我的理解:策略模式就是将类中可能在今后存在变化的方法抽象出来(形成一个抽象的策略类或者接口),今后不管方法如何变化,或者有多少种方法,都实现这个策略类或者接口就可以了类要调用哪种方法,只需在运行时申明一下采用哪种方法就可以了。 PS:其实.net中的集合类的排序运算就是用的这种模式。List.Sort (IComparer)在Sort时,传入实现了IComparer接口的排序类就可以了。 clas... 阅读全文
posted @ 2007-08-13 18:22 宝气狗 阅读(201) 评论(0) 推荐(0)
  2007年7月12日
摘要: 参考:Applied Microsoft .NET Framework Programming by Jeffrey RichterCLR Via C#, Second Edition, by Jeffrey Richter先回忆一下装箱和拆箱,看看下面这段代码有多少次装箱操作:public static void Main(){ Int32 v = 5; Object o = v;... 阅读全文
posted @ 2007-07-12 22:02 宝气狗 阅读(251) 评论(0) 推荐(0)
摘要: 参考:CLR Via C#, Second Edition, by Jeffrey RichterCLR自动排列类型实例中的字段以提高性能(如将相关性引用聚合在一起)。但我们仍然可以手动指定排列顺序:[StructLayout(LayoutKind.Auto)]自动排列[StructLayout(LayoutKind.Sequential)]保留我们的字段布局[StructLayout(Layou... 阅读全文
posted @ 2007-07-12 14:21 宝气狗 阅读(237) 评论(0) 推荐(0)
摘要: MSIL Instruction Set Base Instructions Instruction Description ... 阅读全文
posted @ 2007-07-12 11:19 宝气狗 阅读(379) 评论(0) 推荐(0)
  2007年7月2日
摘要: 为避免高速缓存的一致性问题,IA64架构的CPU提供了一些相关指令volatile read 易失读取,该指令从内存读取字节,然后使高速缓存的相应字节失效volatile write 易失写入,该指令将高速缓存的值刷新到主存中memory fence 内存栅栏,将高速缓存的字节刷新到主存中在System.Threading.Thread中提供了这三个方法Thread.VolatileRead(..... 阅读全文
posted @ 2007-07-02 17:08 宝气狗 阅读(609) 评论(1) 推荐(0)
摘要: 拜读了Richter先生关于内存一致性问题的论文,分析的很透彻,这里做一下自己的小结。示例代码: 1internal sealed class CacheCoherencyProblem 2{ 3 private Byte m_initialized = 0; 4 private Int32 m_value = 0; 5 6 public void Thread1() 7 ... 阅读全文
posted @ 2007-07-02 16:25 宝气狗 阅读(405) 评论(0) 推荐(0)
  2007年6月6日
摘要: 如何循序渐进向DotNet架构师发展 以下文章为转载,原文见【如何循序渐进向DotNet架构师发展】 blueski推荐 [2006-7-17]出处:CSDN作者:人月神话blog 微软的DotNet开发绝对是属于那种入门容易提高难的技术。而要能够成为DotNet架构师没有三年或更长时间的编码积累基本上是不可能的。特别是在大型软件项目中,架构师是项目核心成员,承上启下,因此RUP方法论也认同以... 阅读全文
posted @ 2007-06-06 18:00 宝气狗 阅读(278) 评论(0) 推荐(0)
  2007年4月13日
摘要: 错误的拼接:1. Queue.Out()2. 将Out的单元直接拼接到Xml 问题:将Out的单元拼接到Xml时,如果Queue.In(相同的单元)则Xml中会出现两个相同的单元。如果数据库是对Xml做插入操作。那么数据库中就会出向两个相同的对象了。要拼接的数量越多,出错几率越高 解决方法:1. Queue.Out()2. 将Out加入到字典,避免相同键3. 将字典拼接为Xml,然后清除字典 阅读全文
posted @ 2007-04-13 14:12 宝气狗 阅读(242) 评论(0) 推荐(0)