package base04
/**
* Created by dd on 2016/5/18 0018.
*/
object demo03 extends App{
// 单例对象
// 在scala中创建单例对象使用object关键字,因为单实例无法初始化,所以不能给它的主构造函数传递参数
class Marker(val color: String){
println("Creating "+this)
override def toString(): String = "marker color "+color
}
object MarkerFactory{
private val markers = Map(
"red" -> new Marker("red"),
"blue" -> new Marker("blue"),
"green" -> new Marker("green")
)
def getMarker(color: String) ={
if(markers.contains(color)) markers(color) else null
}
}
println(MarkerFactory.getMarker("blue"))
println(MarkerFactory.getMarker("blue"))
println(MarkerFactory.getMarker("red"))
println(MarkerFactory.getMarker("red"))
println(MarkerFactory.getMarker("yellow"))
}
Programming Scala第4章demo03 单例对象object
最新推荐文章于 2022-06-13 15:34:27 发布