静态类和单例模式区别

转载 2016年08月30日 15:25:51
观点一:(单例 )
单例模式比静态方法有很多优势:
首先,单例可以继承类,实现接口,而静态类不能(可以集成类,但不能集成实例成员);
其次,单例可以被延迟初始化,静态类一般在第一次加载是初始化;
再次,单例类可以被集成,他的方法可以被覆写;
最后,或许最重要的是,单例类可以被用于多态而无需强迫用户只假定唯一的实例。举个例子,你可能在开始时只写一个配置,但是以后你可能需要支持超过一个配 置集,或者可能需要允许用户从外部从外部文件中加载一个配置对象,或者编写自己的。你的代码不需要关注全局的状态,因此你的代码会更加灵活。


观点二:(静态方法 ) 静态方法中产生的对象,会随着静态方法执行完毕而释放掉,而且执行类中的静态方法时,不会实例化静态方法所在的类。如果是用singleton,   产生的那一个唯一的实例,会一直在内存中,不会被GC清除的(原因是静态的属性变量不会被GC清除),除非整个JVM退出了。这个问题我之前也想几天,并 且自己写代码来做了个实验。


观点三:(Good! )
由于DAO的初始化,会比较占系统资源的,如果用静态方法来取,会不断地初始化和释放,所以我个人认为如果不存在比较复杂的事务管理,用 singleton会比较好。个人意见,欢迎各位高手指正。  

深入理解C# 静态类与非静态类、静态成员的区别

深入理解C# 静态类与非静态类、静态成员的区别 静态类 静态类与非静态类的重要区别在于静态类不能实例化,也就是说,不能使用 new 关键字创建静态类类型的变量。在声明一个类时使用stati...
  • jfkidear
  • jfkidear
  • 2014年01月07日 18:06
  • 17279

【Java 基础】Java 局部变量、实例变量、类变量(静态变量)区别

Java 局部变量、实例变量、类变量(静态变量)区别Java 局部变量实例变量类变量静态变量区别局部变量 实例变量 类变量静态变量 伪代码说明 实例变量与类变量区别1. 局部变量:局部变量是类的方法中...
  • u012733519
  • u012733519
  • 2016年06月03日 12:24
  • 2697

Static 静态与非静态的区别

Static 解释 :用static关键字修饰的静态类或者静态变量主要的一个优点是写在栈中的,在内存中占有实际位置,可以安全稳定的快速调用,因此常用static修饰那些需要频繁调用的函数或变量,以此...
  • afanyusong
  • afanyusong
  • 2015年03月07日 12:54
  • 826

php 静态类与非静态类

静态类:类中含有static定义的静态属性或方法的类 静态类访问方法: 1、,静态方法不需要实例化对象,可以通过类名直接调用,操作符为双冒号:: Car::getName();  2、外部访问公共...
  • u010737354
  • u010737354
  • 2015年10月20日 14:58
  • 2974

关于c++静态类的说法

看了网上的观点,大致有这几种比较好的。 观点一:根据现代的C++观点,静态类没有必要存在于C++中。 一个类是对一个概念的描述,类的本质是它维护了一个不变式,也就是说它有一个状态,它所有的接口...
  • u012750259
  • u012750259
  • 2014年11月21日 08:44
  • 4165

python中类方法、类实例方法、静态方法的使用与区别

之前也了解一些,没有完全的理解透彻(就是一知半解),前几天面试被问到这个问题,回答的不是很满意。 先剽窃个图看一下 接着上代码# coding=utf-8 class A(objec...
  • u011510825
  • u011510825
  • 2017年02月26日 21:46
  • 2446

static和非static的区别

那天面试,没有答出来,很可惜,但是还是拿到了offer,在此做一个总结,希望你们看到能够受用。 ● 生命周期(Lifecycle): 静态方法(Static Method)与静态成员变量一样,属于...
  • chajinglong
  • chajinglong
  • 2015年10月13日 12:10
  • 1662

php中静态方法和普通方法的区别初探(一)

最近在做一个小项目的时候,再次遇到$this和self的区别问题。以前模模糊糊的得过且过,这次没有在放过,通过小例子深入理解了下。class Person { public function ...
  • shan0563
  • shan0563
  • 2016年09月01日 09:22
  • 470

java学习总结(16.06.07)类的静态成员和非静态成员

java里,类的成员可分为静态成员和费静态成员(实例成员),静态成员和非静态成员,从定义上来说就是有没有static修饰符修饰的区别。有static修饰的成员就是静态成员。如 public stati...
  • qq_32099621
  • qq_32099621
  • 2016年06月07日 07:08
  • 750

静态内部类和非静态内部类的区别

静态内部类和非静态内部类的区别
  • u012123938
  • u012123938
  • 2015年06月29日 17:42
  • 1911
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:静态类和单例模式区别
举报原因:
原因补充:

(最多只允许输入30个字)