一、模式分类
- 从目的分类:
- 创建型(Creation)模式:负责对象创建。
- 结构型(Structural)模式:处理类与对象之间的关系。
- 行为型(Behavioral)模式:类与对象交互中职责分配。
- 从范围分类
- 类模式:处理类与子类的静态关系。
- 对象模式:处理对象间的动态关系。
二、机制
定义:保证一个类只有一个实例,并提供一个该例的全局访问点。
绕过常规构造器,提供一种机制,来保证一个类只有一个实例。
类的设计者的责任,而不是类的使用者的责任。
public class MyClass { private static MyClass myclass; private MyClass() { } public static MyClass GetInstance() { if (myclass==null) { myclass = new MyClass(); } return myclass; } } public class MyClass1 { private static MyClass1 myclass1; private MyClass1(){ } private static object locker=new object(); public static MyClass1 GetInstance() { lock (locker) { if (myclass1 == null) { myclass1 = new MyClass1(); } } return myclass1; } } public class MyClass2 { private static MyClass2 myclass2; private MyClass2() { } private static object locker = new object(); public static MyClass2 GetInstance() { if (myclass2 == null) { lock (locker) { if (myclass2 == null) { myclass2 = new MyClass2(); } } } return myclass2; } }