Scala之单例模式
来源:互联网 发布:西甲数据 编辑:程序博客网 时间:2024/05/06 09:04
package com.uplooking.bigdata.p2
/**
* scala中关于单例的模拟
* object中的属性和方法都可以当做类似java中的静态成员,都可以通过
* object.成员来进行调用
*/
object SingletonOps {
def main(args: Array[String]): Unit = {
val singleton1 = Singleton.getInstance
val singleton2 = Singleton.getInstance
println(singleton1 == singleton2)
singleton1.index = 5
println("singleton1.index: " + singleton1.index)
println("singleton2.index: " + singleton2.index)
}
}
object Singleton {
private val singleton = Singleton;
def getInstance = singleton
var index = 1
}
/*
java中单例
步骤
1、私有化构造器
2、创建一个方法供外部调用====>静态方法
3、类内部创建一个对象,交给2中创建的方法
//饿汉式
public class Singleton {
private static Singleton s = new Singleton();
private Singleton(){}
public static Singleton getInstance() {
return s;
}
}
//懒汉式
1、私有化构造器
2、类内部创建一个类的引用即可
3、当第一次调用的时候,创建对象,并返回值即可
public class Singleton {
private Singleton s;
private Singleton(){}
public static Singleton getInstance() {
if(s == null) {//同步代码块
synchronized(Singleton.class) {
if(s == null) {
s = new Singleton();
}
}
}
return s;
}
//同步函数
/* public synchronized static Singleton getInstance() {
if(s == null) {
s = new Singleton();
}
return s
}*/
}
*
*/
/**
* scala中关于单例的模拟
* object中的属性和方法都可以当做类似java中的静态成员,都可以通过
* object.成员来进行调用
*/
object SingletonOps {
def main(args: Array[String]): Unit = {
val singleton1 = Singleton.getInstance
val singleton2 = Singleton.getInstance
println(singleton1 == singleton2)
singleton1.index = 5
println("singleton1.index: " + singleton1.index)
println("singleton2.index: " + singleton2.index)
}
}
object Singleton {
private val singleton = Singleton;
def getInstance = singleton
var index = 1
}
/*
java中单例
步骤
1、私有化构造器
2、创建一个方法供外部调用====>静态方法
3、类内部创建一个对象,交给2中创建的方法
//饿汉式
public class Singleton {
private static Singleton s = new Singleton();
private Singleton(){}
public static Singleton getInstance() {
return s;
}
}
//懒汉式
1、私有化构造器
2、类内部创建一个类的引用即可
3、当第一次调用的时候,创建对象,并返回值即可
public class Singleton {
private Singleton s;
private Singleton(){}
public static Singleton getInstance() {
if(s == null) {//同步代码块
synchronized(Singleton.class) {
if(s == null) {
s = new Singleton();
}
}
}
return s;
}
//同步函数
/* public synchronized static Singleton getInstance() {
if(s == null) {
s = new Singleton();
}
return s
}*/
}
*
*/
0 0
- Scala之单例模式
- scala实现设计模式之单例设计模式
- scala学习之:scala中的单例
- 模式之单例模式
- Scala 单例对象
- Scala单例对象
- Scala单例对象
- Scala之模式匹配
- Scala 之 模式匹配
- Scala之模式匹配
- Scala学习笔记之单例对象`Singleton Objects`
- 设计模式之单例
- Java之单例模式
- JavaScript之单例模式
- 设计模式之单例
- 单例模式之旅
- ios之单例模式
- 设计模式之 单例
- 网络流24题04 魔术球问题
- 解决Mac下SourceTree每次都让输入密码的问题
- 4步搞定vs2015搭建opengl开发环境(opengl超级宝典第五版)
- 六行python代码的爱心曲线
- 24点休闲益智小游戏
- Scala之单例模式
- 博客开通
- ecshop中index.dwt文件分析
- 10步开发一个QNX程序-QNX的软件程序开发,QNX开发环境开发工具使用
- 剑指offer系列----旋转数组的最小数字
- 基于Cluster的Redis集群方案
- python基础
- 详解jquery-cookie.js
- org.hibernate.exception.SQLGrammarException: could not inYou have an error in your SQL syntax;完美解决错误