|
57 / 57 / 20
Регистрация: 04.07.2013
Сообщений: 524
|
|||||||||||
Головоломка с архитектурой приложения02.09.2015, 21:06. Показов 1449. Ответов 11
Метки нет (Все метки)
Доброго времени суток. Для начала опишу вкратце ситуацию. Допустим есть следующий интерфейс
Внимание вопрос: реально ли вообще сделать какое нибудь действие во время вызова OwnMethod, чтобы внутри него без лишних телодвижений сделать следующее, например: если я вызвал OwnMethod внутри MyClass.A(),то чтобы внутри OwnMethod можно было вызвать A() для всех классов которые реализуют этот интерфейс (классы собраны в колекцию) Может немного неясно пояснил, извините расписал как смог. Мои идеи: 1) При условии что А, В и С имеют одинаковую сигнатуру,описать делегат, в OwnMethod в параметрах объявить переменное число параметров этого делегата , и в вызове MyClass.A()/MyClass.В()/MyClass.С() в параметры OwnMethod передавать конкретные объекты с их параметрами. (Мне этот вариант нравится больше всего) 2) Расширить классы методами ExecuteOperation() - метод который принимает строку с именем метода, и switcом выбирает необходимый метод на выполнения (по моему это очень тупорыло). Может у кого есть собственный взгляд на этот вопрос. Буду рад услышать чье то мнение. Спасибо.
0
|
|||||||||||
| 02.09.2015, 21:06 | |
|
Ответы с готовыми решениями:
11
Составить структуру и текст приложения поиска и отображения графических файлов с архитектурой однодокументного интерфейса Разработка Windows-приложения «Головоломка «Четыре цвета» Разобраться с Архитектурой |
|
|
|||||||
| 02.09.2015, 21:51 | |||||||
0
|
|||||||
|
57 / 57 / 20
Регистрация: 04.07.2013
Сообщений: 524
|
|
| 02.09.2015, 23:23 [ТС] | |
|
Psilon, абстрактным классом не получится, методы A,B,C не имеют абсолютно никакой реализации.
Добавлено через 6 минут Storm23, может и есть проблемы с архитектурой, хотя это трудно сейчас определить, так как пример обобщенный и не все детали уточнённые. Скажите пожалуйста, пример кода который Вы мне написали, это рефлексия? Потому что я раньше с таким не сталкивался.
0
|
|
|
104 / 89 / 32
Регистрация: 12.07.2011
Сообщений: 623
|
||
| 03.09.2015, 07:46 | ||
0
|
||
|
57 / 57 / 20
Регистрация: 04.07.2013
Сообщений: 524
|
|
| 03.09.2015, 12:16 [ТС] | |
|
PYPS, спасибо, я знаю что такое abstract. Но мне кажется, что это было бы неверно писать абстрактный класс у которого совсем нету реализации. Или я не прав?
0
|
|
|
57 / 57 / 20
Регистрация: 04.07.2013
Сообщений: 524
|
|
| 03.09.2015, 16:02 [ТС] | |
|
Psilon, не до конца понимаю Вас. Можете написать небольшой пример кода? Спасибо.
0
|
|
|
Master of Orion
|
||
| 03.09.2015, 16:10 | ||
|
KrekerOK, чтобы набрать пример кода, нужно ситуацию понимать
Я исходил из вашего утверждения:
0
|
||
|
57 / 57 / 20
Регистрация: 04.07.2013
Сообщений: 524
|
|
| 03.09.2015, 16:12 [ТС] | |
|
Psilon, спасибо. А можете пожалуйста по подробней пояснить почему рефлексия это плохо? И почему выбирать конкретные свойства вообще печально? Спасибо.
0
|
|
|
Master of Orion
|
|
| 03.09.2015, 16:22 | |
|
KrekerOK, ну потому что свойства могут измениться/переименоваться и т.п. Если стандартные методы стандартной библиотеки (вроде string.IsNullOrEmpty) еще можно использовать поимённо (потому что МС костьми ляжет, но не даст сломаться старому софту), то про свой говорить нечего
Ну и производительность оставляет желать лучшего, доступ через рефлексию к полям вроде бы в ~1000 раз медленнее, чем напрямую.
0
|
|
|
57 / 57 / 20
Регистрация: 04.07.2013
Сообщений: 524
|
|
| 03.09.2015, 16:23 [ТС] | |
|
Понятно, спасибо, теперь понятней.
0
|
|
| 03.09.2015, 16:23 | |
|
Помогаю со студенческими работами здесь
12
Архитектурой инженерной программы Silverlight приложение с многоуровневой архитектурой Разработать приложение с 3-звенной архитектурой Контроллеры с фон неймановской архитектурой
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|