Я ссылаюсь на класс вспомогательных изображений (который наследует абстрактный помощник изображений), который управляет информацией о фотографиях по всей форме. Есть несколько действий, которые пользователь может выполнить над этим изображением в форме (загрузка, разметка, сохранение в облаке и т. Д.). Несколько форм используют вспомогательный класс изображения (который наследует один и тот же абстрактный класс) по тем же причинам.
Иногда, например, если пользователь переходит к новой записи, изображение меняется. Поскольку класс помощника по изображению хранит всю необходимую информацию об изображении (включая соответствующие таблицы в базе данных, имя файла и т. Д.), Если изображение в форме изменяется, то мне нужно создать новый помощник.
В настоящее время я делаю это, сохраняя guid для текущего изображения в закрытой переменной, сохраняя помощник изображения в закрытой переменной, но вызывая помощник изображения через личное свойство, где get проверяет, изменилось ли изображение , сравнивая текущий guid с guid изображения формы.
Я чувствую, что должен быть лучший путь; например, можно ли выполнить проверку в помощнике по изображениям (и если да, то есть ли общий шаблон для этого?), поэтому мне не нужно иметь это сложное свойство в каждой форме, отображающей изображение (я).
Вот код для собственности. Я думаю, что это все, что нужно, чтобы донести идею, но дайте мне знать, если вам нужно больше Этот конкретный код находится в vb.Net. Спасибо!
Private ReadOnly Property DRecImageHelper As DailyRecordImageHelper
Get
If Me._BsDailyRecord.Current Is Nothing Then Return Nothing
Dim dailyRecordGuid As Guid = CType(DirectCast(Me._BsDailyRecord.Current, DataRowView).Item("DailyRecordGuid"), Guid)
If _LastDailyRecordGuid_ForImageHandler <> dailyRecordGuid Then
_DRecImageHelper = New DailyRecordImageHelper(dailyRecordGuid)
End If
_LastDailyRecordGuid_ForImageHandler = dailyRecordGuid
Return _DRecImageHelper
End Get
End Property