Сообщение Re[2]: Переопределение невиртуального метода от 20.04.2017 9:17
Изменено 20.04.2017 9:18 Pek2014
Re[2]: Переопределение невиртуального метода
Здравствуйте, Sinatr, Вы писали:
S>Здравствуйте, Pek2014, Вы писали:
P>> В обычном Dictionary<> не устраивает реализация метода Add. Надо кое-что в него добавить (некую диагностику).
S>Вы уже предложили extension method... Отговорки в стиле "надо править слишком большое число мест" звучат не очень убедительно, ведь именно так подобная задача и решается,
Задача в том, чтобы программист, получивший ссылку на словарь действовал "как обычно", "как привычно", ничего не подозревая, но из-за фокуса сделанного в момент создания словаря (где-то далеко по коду), результат был бы "особенный".
S>...переопределить невиртуальный метод — звучит как XY проблема.
И тем не менее это сделать удалось с помощью повторной реализации интерфейса.
А доступ к старой версии метода (тому, что был перед переопределением),удалось блокировать запретом прямого создания экземпляров класса и предоставлением конкретной фабрики.
S>Здравствуйте, Pek2014, Вы писали:
P>> В обычном Dictionary<> не устраивает реализация метода Add. Надо кое-что в него добавить (некую диагностику).
S>Вы уже предложили extension method... Отговорки в стиле "надо править слишком большое число мест" звучат не очень убедительно, ведь именно так подобная задача и решается,
Задача в том, чтобы программист, получивший ссылку на словарь действовал "как обычно", "как привычно", ничего не подозревая, но из-за фокуса сделанного в момент создания словаря (где-то далеко по коду), результат был бы "особенный".
S>...переопределить невиртуальный метод — звучит как XY проблема.
И тем не менее это сделать удалось с помощью повторной реализации интерфейса.
А доступ к старой версии метода (тому, что был перед переопределением),удалось блокировать запретом прямого создания экземпляров класса и предоставлением конкретной фабрики.
Re[2]: Переопределение невиртуального метода
Здравствуйте, Sinatr, Вы писали:
P>> В обычном Dictionary<> не устраивает реализация метода Add. Надо кое-что в него добавить (некую диагностику).
S>Вы уже предложили extension method... Отговорки в стиле "надо править слишком большое число мест" звучат не очень убедительно, ведь именно так подобная задача и решается,
Задача в том, чтобы программист, получивший ссылку на словарь действовал "как обычно", "как привычно", ничего не подозревая, но из-за фокуса сделанного в момент создания словаря (где-то далеко по коду), результат был бы "особенный".
S>...переопределить невиртуальный метод — звучит как XY проблема.
И тем не менее это сделать удалось с помощью повторной реализации интерфейса.
А доступ к старой версии метода (тому, что был перед переопределением),удалось блокировать запретом прямого создания экземпляров класса и предоставлением конкретной фабрики.
P>> В обычном Dictionary<> не устраивает реализация метода Add. Надо кое-что в него добавить (некую диагностику).
S>Вы уже предложили extension method... Отговорки в стиле "надо править слишком большое число мест" звучат не очень убедительно, ведь именно так подобная задача и решается,
Задача в том, чтобы программист, получивший ссылку на словарь действовал "как обычно", "как привычно", ничего не подозревая, но из-за фокуса сделанного в момент создания словаря (где-то далеко по коду), результат был бы "особенный".
S>...переопределить невиртуальный метод — звучит как XY проблема.
И тем не менее это сделать удалось с помощью повторной реализации интерфейса.
А доступ к старой версии метода (тому, что был перед переопределением),удалось блокировать запретом прямого создания экземпляров класса и предоставлением конкретной фабрики.