摘要:
此模式主要充当观察者,观察程序的动向。Observer有两种主要模型,“推”和“拉”。拉模型的优点是它实现起来比较简单,并且易于重用。推模型的Observer模型可以为我们提供让客户程序知道发生了哪些变化。 阅读全文
摘要:
Composite模式是一个比较简单但具有深刻内涵的模式。此模式使用代理机制,屏蔽掉其他单个的接口实现,表现得就像是一个实现接口的,不过,实际上它只是一组实例的代理。 阅读全文
摘要:
为了征询DIP原则,在很多情况下都不能与具体类实例相关联,用NEW关键字就违反了这一原则,当然一些不会改变的类,比如String这些是没必要隔离什么的。如果具体类是非常易变的,依赖就会带来问题,那么怎样避免使用具体的类呢,这就是Factory的用武之地。 阅读全文
摘要:
此模式意在防止返回空引用,用空对象代替空引用。也就是代替null,这样在客户端处理的时候就不用关心返回的是不是空引用了,少了判断或Try…Catch语句的开销。 这就需要一个匿名的表示空值的实例,只是此实例无论执行什么方法都是无效的,我感觉在.NET中这种模式实现起来比较复杂,还不如返回null在程序里判断,就像: If(e != null && e.Method1()) { ... 阅读全文
摘要:
这两个模式的作用都是为了使对象具有唯一性的特征,只是在实现上稍有差别,Singleton一般使用类的静态方法返回类的实例从而构造对象,这样可以先判断对象是否创建,如果创建就使用已创建的对象,这样保持了对象的唯一性,这在与构造一般对象时有所不同。Monostate模式表示用静态变量存储类的字段,这样,无论有多少个对象,所处理的内部字段都是一样,从而达到的效果也是一样,它在使用上与一般的对象是没有差别的,只是也能通过继承方便的派生出其他对象。 阅读全文