[创建型设计模式:singleton]单线程设计模式验证代码
来源:互联网 发布:阿里云网站备案核验单 编辑:程序博客网 时间:2024/05/22 08:03
背后的故事:第一次见这个模式的时候是在做平台的时候看到的这个模式,当前只知道我只可以创建一个对象,这个功能用在创建数据库表的时候用的,我们的系统里面的所有的表是用c#里面代码自动生成的,即:系统第一次加载的时候,根据动态建模工具生成的一个XML文件,然后我在系统加载的时候,代码去读这个XML文件,然后生成系统里面的表结构,以及一些初始化数据,因为数据库表只有一个,所以用到这个模式。当时感觉自己很迷糊,经过自己沟通,以及查资料自己现在学设计模式,现在学下这块代码。这些代码大部分摘自书,或者网上,还有就是李建忠的设计模式视频。这些demo只做验证。
以下是单线程:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication2{ class Program { static void Main(string[] args) { Singleton t1 = Singleton.Instince;//返回一个NEW好的实例 Singleton t2 = Singleton.Instince;//返回上一个已经创建的实例 Console.WriteLine(Object.ReferenceEquals(t1, t2)==true);//T1==T2 Console.ReadLine(); } } /// <summary> ///对象创建型模式:确保只有一个实例,控制NEW的个数,在构造函数上做手脚 /// </summary> /// 单线程 public class Singleton { private static Singleton instince; private Singleton() { ////私有构造器,覆盖公用的构造器 //把默认的构造器屏蔽掉,让外部调动不到 } public static Singleton Instince { get { if (instince == null) { instince = new Singleton(); } return instince; } } }}单元测试结果:
学到的知识点:
1.一个类的构建有2中方式:通过构造器创建一个对象
如果对象不存在通过序列化此对象到一个物理位置与反序列化此对象来得到一个对象;
构造器决定一个对象的内存分配与初始化信息
2.所谓的创建型设计模式是在“NEW”的时候对对象进行控制
- [创建型设计模式:singleton]单线程设计模式验证代码
- 单线程 singleton 设计模式
- [设计模式-创建型]单态(Singleton)
- 设计模式-创建型模式#单例模式Singleton
- 设计模式-创建型模式:单例模式 Singleton
- 设计模式单件(Singleton)---对象创建型模式
- 设计模式-创建型模式之 Singleton(单例)
- 【设计模式基础】创建型模式 - 1 - 单件(Singleton)
- 设计模式--单件模式Singleton(创建型)
- 创建型设计模式---单例模式(Singleton)
- 设计模式(创建型)之单例模式(Singleton Pattern)
- 【设计模式】创建型模式之单例Singleton
- 设计模式-创建型-单例模式(Singleton)
- 设计模式--单例模式Singleton(创建型)
- [设计模式]SINGLETON(单件)_对象创建型模式
- 设计模式:创建型模式代码示例[Singleton pattern]
- java-设计模式-创建模式-单例模式singleton
- 设计模式--创建型-SINGLETON(单件)
- 整理一下中缀表达式转后缀表达式(逆波兰表达式)的算法-调度场算法(shunting yard algorithm)
- ejb3 学习小结1
- iPhone高清语音功能iMessage对移动运营商产生严重威胁
- 动态库加载路径之RPATH与RUNPATH(小记)
- 冒泡排序
- [创建型设计模式:singleton]单线程设计模式验证代码
- 无奈之事
- P1000的使用感受
- 为什么我这段时间闲置Blog了
- 菜鸟怎么Linux安装CodeBlocksSVN最新版
- Tomcat 目录介绍
- 选择法排序
- gacutil.exe的位置
- JAVA 基本数据类型长度