|
|
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Доброго дня, коллеги. первый вариант интерфейса Код: pascal 1. 2. 3. 4. и объявление в классе Код: pascal 1. 2. 3. 4. 5. Второй вариант интерфейса Код: pascal 1. 2. 3. 4. 5. 6. и объявление в классе Код: pascal 1. 2. 3. 4. 5. 6. 7. Понятно, что компилятор пошлет в пеший тур ибо замыкание функций на интерфейс не корректно. Именование функций в интерфейсе нужно оставить именно таким. В классе тоже, т.к. он здоровый и всяких load/save там куча Без костыля в виде отдельного класса никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 11:41 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Что мешает вместо Load использовать более осмысленное название процедуры (ConfigLoad)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 11:45 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Олег Третьяков, Т.е., как заменить Код: pascal 1. на Код: pascal 1. 2. 3. 4. 5. 6. но, чтоб было меньше букв? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 11:52 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
wadman, на мой взгляд не комильфо далее будет ConfigController.configLoad. дважды config - как то не айс AX-Class, Речь идет о синтаксисе замыкания перегруженных функций в интерфейсе на их псевдонимы реализации в классе. И да, чтоб меньше букв) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 12:08 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Олег Третьяков, а зачем в классе нужен именно overload Load/SaveConfigFile? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 12:49 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
GunSmoker, Именно overload?.. В классе?.... Мм.. не уловил изюмину вопроса. Я правда уже поломал код и нарисовал класс-костыль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 13:07 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
GunSmoker, Пес ними, именами, но сигнатуры разве не должны совпадать в интерфейсе и в классе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 13:17 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Олег Третьяков, я, мож, вопрос не уловил, но: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 13:55 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Ещё можно подумать в другом направлении, например можно сделать класс-адаптер для разных типов источника данных, а Load/Save сделать работающим с адаптером. Тогда в классе достаточно оставить методы Load/Save: Код: pascal 1. 2. 3. 4. А уже в TMyDataSource прописать работу с разными источниками данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 13:59 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
GunSmoker, Это разнос на два интерфейса. Ну да, не уловил. Хочу реализовать в одном интерфейсе более одного вариантов функции. В классе именовать с префиксом имени интерфейса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 14:06 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Dimonka, Не хотел городить адаптер, видимо придется, с маршрутизацией через QueryInterface. Благо используемого функционала, теперь уже владельца, не много. офф: торможу с участием, т.к. сегодня баги с электричеством офисе, бесперебойники пищат, приходится выключаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 14:32 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Очевидно не работает. Может хаком тогда, дублирование. Внутри юнита, где класс реализовывается делаем копипаст здорового интерфейса и.. Код: pascal 1. 2. 3. 4. 5. 6. 7. Его и реализуем, наружу хард кастим. Главное чтоб GUID был одинаковым! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 14:50 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Т.е. будет внутри скрытый интерфейс с тем же GUID и нужным именованием методов: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. А снаружи для человеков будет: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. VMT совпадает, главное держать синхронно оба в случае изменений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 15:07 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Кар-Кар, В топку поддержание синхронности) Вынес в отдельный класс, имхо меньшее зло Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. в классе-владельце Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 15:34 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Олег Третьяковв классе-владельцеА почему бы не сделать через property implements? Смысл тот же, а кода меньше. И в новых делфях QueryInterface будет работать в обе стороны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 15:42 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, Привычка. Да, можно, согласен. _Vasilisk_ И в новых делфях QueryInterface будет работать в обе стороны Эм, интересно. Даже рекурсии не возникает? Можно ссылко с деталями? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 16:04 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Олег ТретьяковМожно ссылко с деталями? тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2017, 17:53 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Типа так?: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 10:39 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Hammer, Нет. см. выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 16:56 |
|
||
|
Интерфейс с перегруженными функциями и его реализация
|
|||
|---|---|---|---|
|
#18+
Олег ТретьяковHammer, Нет. см. выше. Хозяин-барин. Надеюсь, что он в курсе того, что TComponent не поддерживает подсчет ссылок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2017, 19:37 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39568624&tid=2041442]: |
0ms |
get settings: |
10ms |
get forum list: |
8ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
206ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 232ms |
| total: | 523ms |

| 0 / 0 |
