82 / 60 / 17
Регистрация: 21.08.2015
Сообщений: 1,075
|
||||||
1 | ||||||
Разобраться с паттерном Decorator19.11.2017, 13:00. Показов 1579. Ответов 8
Метки нет (Все метки)
Добрый день. У кого есть время и терпенье, помогите разобрать с декоратором… (На примере С#)
Хочу добавить к классу DirectoryInfo метод возвращающий размер директории. Насколько я понял, первое что нам необходимо сделать, это создать класс Декоратор унаследованный от Абстрактного класса FileSystemInfo. Дальше пошли ошибки «'FileSystemInfoDecorator' does not implement inherited abstract member 'FileSystemInfo.Exists.get'» Что-то мне кажется, что я делаю что-то не то…
0
|
19.11.2017, 13:00 | |
Ответы с готовыми решениями:
8
Не могу разобраться с паттерном Стратегия Подскажите, как разобраться с паттерном "Стратегия" DefautParameters decorator Паттерн Decorator |
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
19.11.2017, 13:16 | 2 |
Во-первых, при чем тут декоратор?
Во-вторых, говоришь, что При этом наследуешься почему-то не от него.
0
|
82 / 60 / 17
Регистрация: 21.08.2015
Сообщений: 1,075
|
|
19.11.2017, 13:29 [ТС] | 3 |
Ну потому что надо делать при помощи него, разве нет?
А что надо наследовать?
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
19.11.2017, 14:00 | 4 |
Еще раз, исходная задача: есть класс DirectoryInfo, нужно расширить его новым методом. Создаем класс-наследник DirectoryInfo, добавляем метод. Все.
0
|
82 / 60 / 17
Регистрация: 21.08.2015
Сообщений: 1,075
|
|
19.11.2017, 14:16 [ТС] | 5 |
https://msdn.microsoft.com/ru-... .110).aspx
public sealed class DirectoryInfo : FileSystemInfo Ключевое слово sealed запрещает наследование от класса DirectoryInfo
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
||||||
19.11.2017, 14:26 | 6 | |||||
Сообщение было отмечено Чипс как решение
Решение
Тогда так:
1
|
82 / 60 / 17
Регистрация: 21.08.2015
Сообщений: 1,075
|
||||||
19.11.2017, 14:38 [ТС] | 7 | |||||
По описанию декоратора вроде подходит под его задачи, судя по всему я не могу понять нечто важное...
Спасибо за ответ, но не могли бы вы немного пояснить что именно происходит в этой строке?
Ах да, методы расширения... Тупняк совсем одолевает...
0
|
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
|
|
19.11.2017, 14:39 | 8 |
Декоратор полезен, если нужно существующий метод дополнить некоторым функционалом. Например, добавить логирование до и/или после вызова основного метода или замеры времени или вовсе заменить основной функционал заглушкой.
Здесь же — расширение функциональности класса. Решить классом-оберткой можно, но будет слишком громоздко. Extension Methods — как раз способ добавления функционала в класс без создания подкласса.
0
|
82 / 60 / 17
Регистрация: 21.08.2015
Сообщений: 1,075
|
|
19.11.2017, 14:57 [ТС] | 9 |
Спасибо большое.
0
|
19.11.2017, 14:57 | |
19.11.2017, 14:57 | |
Помогаю со студенческими работами здесь
9
Патерн Decorator для программы Как правильно применять патерн Decorator Неправильно работает простейший пример паттерна Decorator Применение паттерна Decorator при создании элемента калькулятора В чём отличия и сходства паттернов Adapter, Decorator, Wrapper и Proxy? Незадача с паттерном Цепочка обязанностей Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |