Мне нужно абстрагировать некоторый поведенческий код и у меня возникла проблема с попыткой ссылки на объекты в классе, который вызывает эти поведения, позвольте мне попытаться объяснить:
Мой "родительский" класс имеет свойство с именем CurrentPage . У меня также есть некоторая поведенческая логика, которая изменяет свойство CurrentPage , в настоящее время это записано в том же классе. Теперь мне нужно повторно использовать это поведение во многих местах, поэтому я хочу инкапсулировать / абстрагировать это в отдельный ... эм ... класс ??
Я чувствую, что, вероятно, существует шаблон проектирования, который удовлетворит мои потребности, но я не могу понять, какой использовать.
Может ли кто-нибудь там помочь ??
Спасибо,
Mark
(я использую C #, Silverlight и MVVM. CurrentPage - это свойство уведомления, а не поле, поэтому его нельзя передать как тип ref в подкласс Behavior)
ОБНОВЛЕНИЕ: Пример добавлен в соответствии с запросом:
class MainApp
{
public static string CurrentPage { get; set; }
/// <summary>
/// Entry point into console application.
/// </summary>
static void Main()
{
CurrentPage = "Default value";
Console.WriteLine(CurrentPage);
DoWork();
Console.WriteLine(CurrentPage);
Console.ReadLine();
}
private static void DoWork()
{
CurrentPage = "A new page";
}
}
Я пытаюсь извлечь DoWork () в отдельный класс.