package scala.creational
// Permitir a criação de uma só instância de um tipo de objeto
object Singleton {
// object in scala is a singleton class
var value:Int = _
def someMethod() : String = {
"Hello Singleton!"
}
}
// Error:
//class BadSingleton private () {
// private var instance:BadSingleton = null
//
// def getInstance() : BadSingleton = {
// if(instance == null) instance = new DummySingleton()
// return instance
// }
//}
// Client
object SingletonClient extends Application {
println(Singleton.someMethod())
// Compile error
// var s = new Singleton()
var s1 = Singleton
var s2 = Singleton
println(Singleton.value)
s1.value = 1
println(Singleton.value)
s2.value = 2
println(Singleton.value)
println(s1 == s2)
// Compile error
// println(new BadSingleton().getInstance())
// println(BadSingleton.getInstance())
}
sábado, 28 de agosto de 2010
Design Patterns em Scala: Singleton
Singleton:
Em Scala o padrão Singleton está embutido na linguagem e substitui os temíveis métodos static de Java que são um pesadelo para testes de unidade. O Singleton, criado com a palavra reservada object agrega os métodos de classe, isto é, que não depende dos dados de uma instância. Veja o exemplo abaixo:
Singleton.scala
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário