设计模式的原则

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

原文地址:https://www.cnblogs.com/xibei666/p/4419161.html