系列文章目录
- C#设计模式(单例模式)
- C#设计模式(简单工厂模式)
- C#设计模式(工厂方法模式)
- C#设计模式(抽象工厂模式)
- C#设计模式(创造者模式)
- C#设计模式(原型模式)
- C#设计模式(适配器模式)
- C#设计模式(桥接模式)
- C#设计模式(装饰者模式)
- C#设计模式(组合模式)
- C#设计模式(外观模式)
- C#设计模式(亨元模式)
- C#设计模式(代理模式)
- C#设计模式(模板方法模式)
- C#设计模式(命令模式)
- C#设计模式(迭代器模式)
- C#设计模式(观察者式)
- C#设计模式(中介者模式)
- C#设计模式(状态者模式)
- C#设计模式(策略者模式)
- C#设计模式(责任链模式)
- C#设计模式(访问者模式)
- C#设计模式(备忘录模式)
提示:该文档会逐步完善
前言
最近一段时间对自己写代码的思维方式有所不满,所以最近想学习设计模式,因为写代码时候会经常设计到设计模式来进行重构。写文档目的是用来做笔记好让自己能够快速找到其次也可以帮助大家收藏
一、单例模式是什么?
说到单例模式,大家第一反应应该就是——什么是单例模式?,从“单例”字面意思上理解为一个类只有一个实例,所以单例模式也就是保证一个类只有一个实例的一种实现方法罢了(设计模式其实就是帮助我们解决实际开发过程中的方法, 该方法是为了降低对象之间的耦合度,然而解决方法有很多种,所以前人就总结了一些常用的解决方法为书籍,从而把这本书就称为设计模式),下面给出单例模式的一个官方定义:确保一个类只有一个实例,并提供一个全局访问点。为了帮助大家更好地理解单例模式,大家可以结合下面的类图来进行理解,以及后面也会剖析单例模式的实现思路:
二、使用步骤
1.引入库
调用: Queue queue = GenericSingleton<Queue>.CreateInstrance();
public class GenericSingleton<T> where T : new()
{
private static T t = default(T);
public static T CreateInstrance()
{
if (t == null)
{
t = new T();
}
return t;
}
}
这样写就是所有类型都可以直接用这个泛型实例化
后面where T : new()
是给泛型加new约束,不加这个判断里面不能new
T t = default(T)
这是给泛型设置默认值,如果是值类型,默认是0,引用类型默认是null
这个不可以用在Form,因为Form可能IsDisposed(已经释放资源),如果要用在窗口上
public class GenericSingleton<T> where T : Form, new()
{
private static T t = null;
public static T CreateInstrance()
{
if (t == null || t.IsDisposed)
{
t = new T();
}
return t;
}
}
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。