单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
单例模式的要点:
- 某个类只能有一个实例
- 它必须自行创建这个实例
- 它必须自行向整个系统提供这个实例
java基础知识回顾
- 对象是从何而来
- public protected private 关键字的作用范围
- static,final 关键字的作用
第一个问题: 对象从而而来。这个估计学java的都知道,是通过new出来的
public class A{
//
}
如果要等到A的对象,那么必须A a = new A();这样得到A的对象。那么为什么可以这样做呢。因为上述这个A 类的完整形式如下
public class A{
public A(){}//构造方法
}
你得到A的对象a其实是通过这个构造方法得到的,并且这个构造方法是public类型的。所以用new A()就可以得到A的一个对象。
第二个问题: public,protected, private关键字的作用范围
public、protected、private三种显示的修饰符用于控制可见性.
引用
public 对无论任何类都可见
protected只对子类可见
private只对该类可见
试想下如果你将你的构造方法由public 改为private那么会出现什么情况呢
public class A{
private A(){}
}
由于private只对该类可以,因此如果你通过 A a = new A()。这样做不行的。如果你将A的构造函数的访问权限改为private的话,对外就隐藏这个A的对象了。
如果你想得到A的对象a的话,进必须由A自己对外提供,这里有两种方法,一种是利用static关键字,一种是定义个方法这个方法一定不是private,通过这个方法来进行对外提供A的对象。
第三个问题: static,final关键字
static关键字
- 静态方法和静态变量是属于某一个类,而不属于类的对象
- 静态方法和静态变量的引用直接通过类名引用
- 在静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以
- 静态变量在某种程序上与其他语言的全局变量相类似,如果不是私有的就可以在类的外部进行访问
final 关键字
final:无法被改变的
- 一个永不改变的编译时常量
- 一个在运行时候被初始化的值,而你不希望它被改变
static和final结合定义表示:一块永远不被改变的存储空间
理解上面三个java的基础知识后,我们看看单例模式怎么出现的
public class A{
priavte statc final A a = new A();
private A(){
}
public static A getInstance(){
return a;
}
}
这个就是实现了一个简单的单例模式。在这个例子中外部想得到A类的通过A提供的getInstace()方法。并且由于a是被static 和final所以就达到单例的效果。
不过单例模式又分为饿汉式和懒汉式。其实主要区别就是A类在初始化A的对象a的时候,
分享到:
相关推荐
设计模式-单例模式 学习时候联系的代码,可以进行参考
设计模式C++学习之单例模式(Singleton)
java设计模式,单例模式学习示例源码,创建单例,配置文件读取
新技术培训 培训讲义9_设计模式之单例适配器和工厂模式.doc 学习资料 复习资料 教学资源
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 学习demo
单例模式,顾名思义,只有一个实例,因此这种模式只有在真正的需求“单一实例”的时候使用。它提供一种方法来确保某一特定类型有且只有一个实例。而且自行实例化,并向外部提供这个单一实例。 在它核心结构中,只...
近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二...
简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务; 单例类: 1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例...
3. 单例模式(Singleton) 4 4.建造者模式(Builder) 4 5. 原型模式(Protype) 5 6.适配器模式(Adapter) 6 7.装饰模式(Decorator) 6 8.代理模式(Proxy) 7 9.外观模式(Facade) 7 10.桥接模式(Bridge) 7 ...
设计模式单例模式PPT学习教案.pptx
设计模式源代码--工厂模式与单例。 代码是本人在学习设计模式时,所写的例子。 适合设计模式的初学者看。
主要为大家详细介绍了java设计模式之单例模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
因此这次我们来学习下设计模式,最后会通过C#语言来实现这些设计模式作为例子,深刻理解其中的精髓。 定义 单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过
1 单例模式 2 责任链模式 3 策略模式 4 模板方法模式 5 工厂方法模式 6 抽象工厂模式 7 建造者模式 8 代理模式 9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 ...
主要为大家介绍了JavaScript设计模式中的单例模式,对JavaScript设计模式感兴趣的小伙伴们可以参考一下
《C++20设计模式》学习笔记-第5章单例模式
C#设计模式学习与演变过程-2-单例模式,通过代码的演变过程系统地学习单例模式,代码包括:简单单例、加锁单例、双检单例、饿汉式单例。
主要给大家介绍了关于c#设计模式之单例模式的实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者使用c#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
单例模式(Singleton Pattern)是设计模式中最简单的模式之一,属于创建型模式。这种设计模式主要是类的对象只有一个实例,不需要每次new 创造。而我们要做的的就是确保这个对象创建的唯一。然后根据一些特征进行...