cs_dunith
Messages postés100Date d'inscriptionsamedi 5 janvier 2008StatutMembreDernière intervention11 avril 2008
-
4 mars 2008 à 08:30
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 2014
-
4 mars 2008 à 21:00
bonjour
j'ai créer une classe Debug, pour qu'elle m'afiche les message lors la communication de l'automate avec ma pompe, via RS232;
// la classe pour débugage class TclsDebug
{
boolean bDebug = false;
private static TclsDebug FDebug;
public void AfficheMessage(String mess)
{
if (bDebug == true)
{
//affichage du message
System.out.println(mess);
}
}
public static void Instanciation()
{
FDebug = new TclsDebug();
}
public static TclsDebug GetInstance()
{
return FDebug;
}
public void ChangeEtatDebug()
{
if (bDebug == false)
bDebug = true;
else bDebug = false;
}
}
et ma fonction ChangeEtatDebug(); je l'appelle dans mon programme principale (dans run), quand j'appuie sur D il m'affiche les messages.
while( !fExit )
{
try {sleep( 50 );} catch( InterruptedException e ) {}
/* Wait for a character */
iTemp = System.in.read();
switch(Character.toUpperCase((char)iTemp))
{
case 'Q' : fExit = true; break;
case 'H' : displayHelp(); break;
case 'T' : testLed(); break;
case 'D' : TclsDebug.GetInstance().ChangeEtatDebug();break;
}
}
ma question , qu'on j'appuie sur D s'amarche pas tout le temps?
quelq'un peut medire s'il y a une autre façon de faire, ou c'est ma fonction ChangeEtatDebug(), qui est male implémentée.
cs_AlexN
Messages postés694Date d'inscriptionlundi 5 décembre 2005StatutMembreDernière intervention 8 janvier 201419 4 mars 2008 à 21:00
Un autre détail pour finaliser ton singleton : le constructeur doit être unique et privé. La seule méthode rendant le singleton accessible doit être getInstance() :
public static TclsDebug GetInstance()
{ if (FDebug null) FDebug new TclsDebug();
return FDebug;
}
et tu remplaces :
public static void Instanciation()
{
FDebug = new TclsDebug();
}