Imaginez que j'ai plusieurs composants Viewer qui sont utilisés pour afficher du texte et qu'ils ont peu de modes que l'utilisateur peut changer (différents préréglages de police pour l'affichage du texte/binaire/hexadécimal). Quelle serait la meilleure approche pour gérer les objets partagés - par exemple les polices, la boîte de dialogue de recherche, etc? J'ai pensé que la classe statique avec des objets paresseusement initialisés serait OK, mais cela pourrait être une mauvaise idée.Gestion des ressources partagées entre classes?
static class ViewerStatic
{
private static Font monospaceFont;
public static Font MonospaceFont
{
get
{
if (monospaceFont == null)
//TODO read font settings from configuration
monospaceFont = new Font(FontFamily.GenericMonospace, 9, FontStyle.Bold);
return monospaceFont;
}
}
private static Font sansFont;
public static Font SansFont
{
get
{
if (sansFont == null)
//TODO read font settings from configuration
sansFont = new Font(FontFamily.GenericSansSerif, 9, FontStyle.Bold);
return sansFont;
}
}
}
Sachez que toutes les ressources IDisposables (polices, dialogues, etc.) que vous avez placées dans votre classe statique sera allouée pour la durée de votre application. Cela peut être ce que vous voulez; juste FYI. – TrueWill
c'est ce que je veux, parce que je veux que les ressources vivent éternellement après leur création, afin qu'elles puissent être mises en place "instantanément" après le premier chargement paresseux. – Axarydax
Je ne serais pas un oeil si je devais lire ce code dans une revue par les pairs (me semble bien!). –