zoukankan      html  css  js  c++  java
  • 1设计模式之单例模式

          数学与逻辑学中,singleton定义为“有且仅有一个元素的集合”。
    单例模式最初的定义出现于《设计模式》(艾迪生维斯理, 1994):“保证一个类仅有一个实例,并提供一个访问它的全局访问点。”
    Java中单例模式定义:“一个类有且仅有一个实例,并且自行实例化向整个系统提供。”
        单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。要实现这一点,可以从客户端对其进行实例化开始。因此需要用一种只允许生成对象类的唯一实例的机制,“阻止”所有想要生成对象的访问。使用工厂方法来限制实例化过程。这个方法应该是静态方法(类方法),因为让类的实例去生成另一个唯一实例毫无意义。
      控制台程序,以下是program代码:

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

    namespace Singletonhow
    {
    /// <summary>
    /// 单例模式:适用于只有一个对象的场景,整个程序只有一个唯一对象
    /// 要求:对象只被实例化一次
    /// 比如说:打印机链接,数据库连接池,线程池,写日志对象
    /// </summary>
    class Program
    {
    static void Main(string[] args)
    {
    //生成任务工厂对象
    TaskFactory taskfactory = new TaskFactory();
    for (int i = 0; i < 10; i++)
    {
    //单线程
    //SingletonOne.CreateInstanse();
    taskfactory.StartNew(() => SingletonOne.CreateInstanse());
    }

    Thread.Sleep(15000);
    Console.WriteLine("这里是第二次");
    for (int i = 0; i < 10; i++)
    {
    //单线程
    //SingletonOne.CreateInstanse();
    taskfactory.StartNew(() => SingletonOne.CreateInstanse());
    }
    Console.ReadKey();
    }
    }
    }

     ********************************************未完待续,太困了
  • 相关阅读:
    求斐波那契数列的第n项
    八大经典排序算法
    [BZOJ 3083] 遥远的国度
    [BZOJ 3306] 树
    [SCOI 2010] 序列操作
    [AHOI 2013] 差异
    [USACO2006 DEC] Milk Patterns
    [JSOI 2007] 字符加密
    [BZOJ 2588] Count on a tree
    [NOIP 2018 Day1] 简要题解
  • 原文地址:https://www.cnblogs.com/wh123/p/5583971.html
Copyright © 2011-2022 走看看