![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Всем доброго времени суток!
Разрабатываю архитектуру ПО. Возник вопрос, допустим есть некий интерфейс IInterf, и объект TInterf реализующий его. Спустя некоторое время я расширяю интерфейс IInterf, создав IInterf2 с новыми методами и свойствами. У меня 2 интерфейса(старый и новый) и всего 1 объект. Чтобы новый интерфейс работал его просто надо объявить в реализации класса TInterf? Было: Код:
Код:
Но интерфейса все равно 2, а объект 1. Когда я определю переменные с разными интерфейсами но создам им по одному и тому же объекту, компилятор разберется сам что там-то показать новый метод, а там-то нет? Код:
|
![]() |
![]() |
![]() |
#2 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
все не правильно, а главное не понятно в чем вопрос
а так естественно что интерфейсная ссылка знает только о своем, а не о соседях |
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Вообще-то должен разобраться.
Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 | |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
а что тут правильно?
Цитата:
ну и тд |
|
![]() |
![]() |
![]() |
#5 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]() Цитата:
У меня есть объект TInterf реализующий интерфейс IInterf. Спустя время X я понял что надо добавить в интерфейс ещё больше методов и свойств, но т.к. это интерфейсы для разработчиков, то я не могу взять и поменять базовый IInterf... уже написанные модули с использованием IInterf просто перестанут работать. На объявляю IInterf2 и наследую его от IInterf, и описываю все нововведения. В обявлении класса TInterf я указываю ещё IInterf2. Все. Но TInterf по прежнему один.... а интерфейса уже 2 или 5 или 10, в зависимости от того как часто будет пересматриваться структура интерфейсов. Допустим разработчик хочет чтобы ядро приложения вернула ему именно новый интерфейс, а не старый. Как это делать? |
|
![]() |
![]() |
![]() |
#6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
дык привидение типов с интерфейсами никто не отменял
квериинтерфейс можно делать и тд |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
eval, все это круто. Но интерфейсы как бы это сказать... должны дружить с C++,С# и прочими способными импортировать библиотеки типов.
|
![]() |
![]() |
![]() |
#8 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
тогда com
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Это не отменяет проблемы
![]() Хотя бы потому, что технология интерфейсов как раз и предполагает что 1 объект может реализовывать 100500 интерфейсов. |
![]() |
![]() |
![]() |
#10 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
вы разницу между понятиями объект и тип я вижу не понимаете
по теме - в чем вопрос? посмотрите например как сделан документ в webbrowser (импортируйте тлб) я так понимаю типа ваш случай |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Скорость одного объекта относительно другого | Anton911 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 6 | 17.07.2012 03:18 |
Виртуальное наследование и автоматическое обнуление объекта | coNsept | Общие вопросы C/C++ | 8 | 20.06.2012 15:14 |
Как передать управление из одного объекта в другой? | wolf05632 | Microsoft Office Word | 16 | 10.04.2011 08:21 |
Использование одного объекта в двух потоках | Anekdot | Общие вопросы Delphi | 0 | 16.03.2010 19:37 |
Перекрытие одного объекта другим | Djem1991 | Общие вопросы Delphi | 3 | 11.06.2009 13:17 |