2013年4月6日

设计模式 -- 单例模式(多线程)

摘要: 上一节,我们给出了单例的最简单的实现,这一节我们将解决上一节提出的那个问题----多线程环境下如何运用单例?解决方案1、同步锁我们在创建对象之前,先加锁,这样创建对象的那部分部分代码就不会被两个线程执行了。代码:public class Singleton { private static Singleton uniqueInstance; private static readonly object syncRoot = new object();//同步锁 private Singleton() { } public stati... 阅读全文

posted @ 2013-04-06 21:00 雨过晴空 阅读(344) 评论(0) 推荐(0) 编辑

设计模式 -- 单例模式(单线程)

摘要: 单例模式算是设计模式里最简单的一个设计模式了,讨论学习它,我们不用研究设计原则。它就是一个简单的类结构,来看看吧。1、什么是单例模式? 单例模式确保一个类只有一个实例,并且提供一个全局的访问点。 也许你觉得一个类只能有一个实例简直就是浪费,可是有些情况,我们需要的就是只有一个实例的类,比如说线程池(threadpool),缓存(cache),对话框,处理偏好设置和注册表的对象,日志对象,充当打印机、显卡等设备的驱动器等。事实上,这些类对象只能有一个,如果实例化多个出来,就会导致许多问题产生,如:程序的行为异常,资源的使用过量,或者导致不一致的结果。2、单例模式如何实现? 我说了,单例模式是设计 阅读全文

posted @ 2013-04-06 20:41 雨过晴空 阅读(690) 评论(0) 推荐(0) 编辑

设计模式 -- 抽象工厂

摘要: 还记得吧?我们已经学完了简单工厂和工厂方法了,今天把“抽象工厂”学习完,那么我们的工厂模式就算学完了。1、什么是“抽象工厂”? 抽象工厂模式提供一个接口,用语创建相关或依赖对象的家族,而不需要明确指定具体类。这个概念还真是不好理解,没事,我们接着以例子来说明。 还是关于Pizza饼的故事。Pizza的做法(面团+酱汁+芝士)都是相同的,唯一的差别是他们使用的原料。由于各地区Pizza风味不同,原料使用上自然会有差别,有的地区会在原料上偷工减料,这样就会败坏Pizza长年以来的好名声。为了确保各地区Pizza质量,我们决定要建造一个工厂来生产原料,这个工厂将负责创建原料家族中每一种原料,也就是说 阅读全文

posted @ 2013-04-06 16:13 雨过晴空 阅读(213) 评论(0) 推荐(0) 编辑

导航