У меня есть вопрос, касающийся принципа делегирования в ООП.Я буду использовать пример классов Window & Rectangle из книги шаблонов проектирования GOF для объяснения моего запроса.
public class Window
{
Rectangle myDelegate;
public void Area()
{
return myDelegate.Area();
}
}
public class Rectangle
{
public int Area()
{
return 2*3;
}
}
Мой вопрос: может ли Rectangle (делегат) иметь ссылку на окно (родительский класс)).то есть:
public class Window
{
Rectangle myDelegate;
public int myArea;
public void Area()
{
myDelegate.Area();
}
}
public class Rectangle
{
Window myParent;
public void Area()
{
myParent.myArea = 2 * 3;
}
}
В нетривиальных случаях вышеприведенное сделает делегату гораздо удобнее обновить состояние родителя.Это логично или я что-то здесь упускаю?
Спасибо!