Imagine que tengo varios componentes de visor que se usan para mostrar texto y tienen pocos modos que el usuario pueda cambiar (diferentes preajustes de fuente para ver texto/binario/hex). ¿Cuál sería el mejor enfoque para administrar objetos compartidos, por ejemplo fuentes, diálogo de búsqueda, etc.? Pensé que la clase estática con objetos inicializados de forma lenta estaría bien, pero esta podría ser la idea equivocada.¿Gestión de recursos compartidos entre clases?
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;
}
}
}
Tenga en cuenta que cualquier recurso IDisposable (fuentes, cuadros de diálogo, etc.) que pones su clase estática será asignada por la vida de su aplicación. Eso puede ser lo que quieres; solo para tu información. – TrueWill
eso es lo que quiero, porque quiero que los recursos vivan para siempre después de que se crean, para que puedan aparecer "al instante" después de la primera carga diferida. – Axarydax
No me molestaría si tuviera que leer este código en una revisión por pares (¡me queda bien!). –