Hãy tưởng tượng rằng tôi có một vài thành phần Viewer được sử dụng để hiển thị văn bản và chúng có vài chế độ mà người dùng có thể chuyển đổi (cài đặt phông chữ khác nhau để xem văn bản/nhị phân/hex). Cách tiếp cận tốt nhất để quản lý các đối tượng được chia sẻ - ví dụ: phông chữ, tìm hộp thoại, v.v ...? Tôi đã thấy rằng lớp tĩnh với các đối tượng được khởi tạo lười biếng sẽ là OK, nhưng đây có thể là ý tưởng sai lầm.Quản lý tài nguyên được chia sẻ giữa các lớp học?
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;
}
}
}
Lưu ý rằng mọi tài nguyên IDisposable (phông chữ, hộp thoại, v.v.) mà bạn đưa vào lớp tĩnh của bạn sẽ được cấp phát cho tuổi thọ của ứng dụng của bạn. Đó có thể là những gì bạn muốn; chỉ là FYI. – TrueWill
đó là những gì tôi muốn, bởi vì tôi muốn các nguồn lực để sống mãi mãi sau khi chúng được tạo ra, vì vậy chúng có thể được đưa lên "ngay lập tức" sau khi tải đầu tiên lười biếng. – Axarydax
Tôi sẽ không dè mắt nếu tôi đọc mã này trong một bài đánh giá ngang hàng (có vẻ tốt với tôi!). –