GoF设计模式的原则:
1、开发-封闭原则:开发接口,封闭修改;
2、依赖倒转原则:抽象类不应该依赖实现类,实现类依赖抽象类。
3、里氏代换原则:所有父类都可以替换子类;
4、迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另外一个类的某一个方法的话,可以直接通过第三者调用;
单例模式:
单例模式只是为了实现一个对象存储一个物理内存,可被N个调用,调用的就是一个对象;这样做的好处,一、节省内存;二、数据封装;没必要其他元素访问和修改的;实现的方式如下:
第一种最简单,但没有考虑线程安全,在多线程时可能会出问题:
public class Singleton { private static Singleton _instance = null; private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { _instance = new Singleton(); } return _instance; } }
第二种考虑了线程安全,不过有点烦:
public class Singleton { private volatile static Singleton _instance = null; private static readonly object lockHelper = new object(); private Singleton(){} public static Singleton CreateInstance() { if(_instance == null) { lock(lockHelper) { if(_instance == null) _instance = new Singleton(); } } return _instance; } }
单例模式参考博客:http://www.cnblogs.com/promise-7/archive/2012/05/10/2494275.html