-
Notifications
You must be signed in to change notification settings - Fork 0
3.5 Design a class using a Singleton design pattern
Weverton edited this page Sep 1, 2016
·
4 revisions
Uma das implementações corretas do padrão singleton:
// singleton classe
class SpeedSensor {
// construtor privado para não deixar instanciar
private SpeedSensor(){}
// static inner class
private static class SpeedSensorHolder {
// membro static do tipo da outer class
public static SpeedSensor ss = new SpeedSensor();
}
// metodo static que retorna a instancia do tipo dessa classe
public static SpeedSensor getSpeedSensor() {
return SpeedSensorHolder.ss;
}
}
Implementação correta do singleton:
// singleton classe
class SpeedSensor {
// membro static do proprio tipo da classe
private static SpeedSensor theInstance = new SpeedSensor();
// construtor privado, para nao deixar instanciar
private SpeedSensor(){}
// metodo static que retorna o membro static
public static SpeedSensor getInstance(){
return theInstance;
}
}
Implementação não valida:
// essa class não e um singleton
class SpeedSensor {
// construtor privado
private SpeedSensor(){}
// metodo static que sempre retorna uma nova instancia da propria classe
public static SpeedSensor getInstance(){
return new SpeedSensor();
}
}