C#之设计模式

单例的一种实现方式

1.构造函数私有化

2.声明一个静态字段,作为全局唯一的单例对象

3.声明一个静态函数,返回全局唯一的对象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 单例 {
    class Program {
        static void Main(string[] args) {
            Singleton instance1 = Singleton.Instance;
            Singleton instance2 = Singleton.Instance;
            bool result = object.ReferenceEquals(instance1, instance2);
            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
    public sealed class Singleton {
        private static Singleton _instance;
        private static object obj = new object();
        private Singleton() { }
        public static Singleton Instance{
            get {
                if(_instance == null) {
                    lock (obj) {
                        if(_instance == null) {
                            _instance = new Singleton();
                        }
                    }
                }
                return _instance;
            }
        }
    }

}

代理

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 代理 {
    class Program {
        delegate void MyDelegate(string str);
        static void Main(string[] args) {
            MyDelegate md = new MyDelegate(DelegateText.Function);
            md("刘冠");//调用
            Console.ReadLine();
        }
    }
    //一个类调用,另一个类实现
    public class DelegateText {
        public static void Function(string str) {
            Console.WriteLine(str);//实现
        }
    }
}

 

posted @ 2017-01-06 00:38  刘冠  阅读(182)  评论(0编辑  收藏  举报