|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
ЕвгенийВ, дефолтная имплементация интерфейсов настолько жуткая и сложная в использовании вещь, что если и взлетит, то очень ограниченно, в рамках каких-нибудь сложных библиотек ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 12:49 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Осталось добавить поля в интерфейсы чтобы писать дефолтные имплементации. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 13:10 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Интересно, как будет решаться коллизия в случае множественной реализации интерфейсов с совпадающей сигнатурой методов в дефолтной имплементации. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 14:51 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Будет требоваться явная реализация? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 15:46 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
WorobjoffОсталось добавить поля в интерфейсы чтобы писать дефолтные имплементации. Будут, правда пока статические. Пишут, что все это нужно для взаимодействия/совместимости с java и ios. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 15:58 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныИнтересно, как будет решаться коллизия в случае множественной реализации интерфейсов с совпадающей сигнатурой методов в дефолтной имплементации. в смысле, как? нет никакой коллизии. дефолтную реализацию метода интерфейса можно вызвать только через этот интерфейс. имея ссылку на класс, реализующий некий интерфейс, нельзя вызвать дефолтную реализацию интерфейса. нужно сначала привести ссылку к интерфейсу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 17:50 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
hVosttСон Веры ПавловныИнтересно, как будет решаться коллизия в случае множественной реализации интерфейсов с совпадающей сигнатурой методов в дефолтной имплементации. в смысле, как? нет никакой коллизии. дефолтную реализацию метода интерфейса можно вызвать только через этот интерфейс. имея ссылку на класс, реализующий некий интерфейс, нельзя вызвать дефолтную реализацию интерфейса. нужно сначала привести ссылку к интерфейсу. Это и есть коллизия. Ты попробуешь уже написанное приложение перевести на C# 8, у тебя приложение написано с модными нынче UnityContainer, а тут тебе опачки! Не работает больше метод отрезолвленного класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 18:03 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
WorobjoffЭто и есть коллизия. Ты попробуешь уже написанное приложение перевести на C# 8, у тебя приложение написано с модными нынче UnityContainer, а тут тебе опачки! Не работает больше метод отрезолвленного класса. Не понял в чём коллизия. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 18:05 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
hVosttСон Веры ПавловныИнтересно, как будет решаться коллизия в случае множественной реализации интерфейсов с совпадающей сигнатурой методов в дефолтной имплементации. в смысле, как? нет никакой коллизии. дефолтную реализацию метода интерфейса можно вызвать только через этот интерфейс. имея ссылку на класс, реализующий некий интерфейс, нельзя вызвать дефолтную реализацию интерфейса. нужно сначала привести ссылку к интерфейсу.Во-первых, фактически не "интерфейс имеет" дефолтную реализацию, а его члены могут ее иметь или не иметь. Дефолтная реализация члена интерфейса означает, что явно этот член в классе реализовывать не нужно. А во-вторых, если же реализация присутствует, то ссылка, приведенная к интерфейсу, не должна дергать дефолтные реализации членов, иначе по писе пойдут все реализации в классах и их оверрайды. То есть накроется один из столпов ООП - полиморфизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 19:45 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
А коллизии действительно нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 19:46 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Вот эта хрень полностью аналогична этой: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Ровно та же "коллизия", которой нет. Просто синтаксический сахар, делающий ненужными некоторые базовые классы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 20:05 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
AntonariyРовно та же "коллизия", которой нет. Просто синтаксический сахар, делающий ненужными некоторые базовые классы. Ну хорошо, а если public class InitialLogger : ILogger1, ILogger2 и в ILogger1, и в ILogger2 есть своя дефолтная реализация void Log(Exception ex), а в самом InitialLogger нет? Вроде как коллизия есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 22:51 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
LR, А вот это вопрос интересный. Фактически дефолтные реализации дают нам фишку с++ - множественное наследование. Какой метод будет дергаться через наследника в с++, если два базовых класса имеют одинаковые методы? Не знаю, на плюсах не писал, но ведь как-то это разруливается. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 07:09 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Возможно в такой ситуации придется явно реализовать хотя бы один из методов. В этой ситуации приведение к реализованному интерфейсу будет дергать реализацию, а к нереализованному - дефолт. По крайней мере это логично. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 07:17 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
AntonariyLR, А вот это вопрос интересный. Фактически дефолтные реализации дают нам фишку с++ - множественное наследование. Какой метод будет дергаться через наследника в с++, если два базовых класса имеют одинаковые методы? Не знаю, на плюсах не писал, но ведь как-то это разруливается. Разруливаться это будет очень просто : при возникновении коллизии ромба компилятор будет выдавать болт, и вызвать нужный метод можно будет только явным приведением к типу, у которого эта коллизия отсутствует. Проверил, всё так и есть. В общем случае фича именно дефолтных реализаций сильно напоминает EIMI, только без ручного прописывания реализации в имплементоре, так что именно в этой фиче ничего ужасного не вижу. Остальное - пока не знаю. Например, в интерфейсах стали допустимы квалификаторы abstract и virtual. К чему бы это, и для чего - пока представить не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 07:18 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Кстати, с т.з. CIL интерфейс является абстрактным классом, и теоретически может иметь имплементацию, как и абстрактный класс. И новая фича на уровне IL действительно похожа на абстрактный класс - за вычетом наличия конструктора (неявного) у класса (использовался интерфейс из примеров кода по ссылке выше), и директивы newslot virtual у реализованного метода дефолтной имплементации (т.е. теоретически её можно переопределить, только вот как - пока не нашел): C#: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
IL: Код: c# 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 07:35 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныНапример, в интерфейсах стали допустимы квалификаторы abstract и virtual. К чему бы это, и для чего - пока представить не могу.Очевидно, для того, чтобы интерфейсы-наследники были обязаны иметь или могли оверрайдить дефолтные имплементации. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 10:19 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Главный вопрос во всем этом - как это продать бизнесу? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 10:20 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныИнтересно, как будет решаться коллизия в случае множественной реализации интерфейсов с совпадающей сигнатурой методов в дефолтной имплементации. Сон Веры ПавловныРазруливаться это будет очень просто:Собственно, это та же самая коллизия, что у базовых классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 10:32 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
AntonariyСон Веры ПавловныНапример, в интерфейсах стали допустимы квалификаторы abstract и virtual. К чему бы это, и для чего - пока представить не могу.Очевидно, для того, чтобы интерфейсы-наследники были обязаны иметь или могли оверрайдить дефолтные имплементации. Нет: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Убираем override - получаем Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
И никаких требований заимлементить в IFoo2 абстрактный Bar от IFoo1. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 10:55 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
hVosttWorobjoffЭто и есть коллизия. Ты попробуешь уже написанное приложение перевести на C# 8, у тебя приложение написано с модными нынче UnityContainer, а тут тебе опачки! Не работает больше метод отрезолвленного класса. Не понял в чём коллизия. Как я понял из той статьи. Иерархия наследования интерфейсов "ромб". С одной ветки приходит дефолтная реализация метода, с другой объявление, без реализации. Прикладной разработчик резолвит свой класс который наследует низу "ромба". Вызывает метод который он переопределил своем классе. Какой метод будет вызван? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 11:14 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныAntonariyпропущено... Очевидно, для того, чтобы интерфейсы-наследники были обязаны иметь или могли оверрайдить дефолтные имплементации. Нет: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Убираем override - получаем Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
И никаких требований заимлементить в IFoo2 абстрактный Bar от IFoo1.Тогда действительно не ясно, нафига они. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 11:38 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
WorobjoffКакой метод будет вызван?Никакой, компилятор попросит разработчика избавить его от коллизий. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 11:41 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Antonariy, Вот такой ромб Код: c# 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.
У меня нет C# 8, поэтому не знаю как оно будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 12:21 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
У меня тоже нет, поэтому гадаю на кофейной гуще) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 12:25 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Компилятор потребует в С.B() указать явную реализацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 12:37 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Это тоже самое: Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 12:40 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
WorobjoffУ меня нет C# 8, поэтому не знаю как оно будет. Коллизии по поводу наследования интерфейсов интерфейсами разрешаются компилятором. Опять же. Многим кажется, что дефолтная реализация методов интерфейса это типа как методы расширения. Но нет :0 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 12:47 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
AntonariyЭто тоже самое: Код: c# 1. 2. 3. 4. 5. 6. 7.
обрати внимание на то, что это деградация по сравнению с классическим Visual Basic. Полноценная поддержка нескольких интерфейсов одновременно становится невозможной. И деградация ради идеи "поддержки жизненного цикла интерфейсов", которая, по крайней мере с первого взгляда, выглядит завиральной. Из того, что "так сделали в Java", само по себе, вообще ничего не должно следовать. Штаны на лямках - нам срочно нужно сделать "также". Также как почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 12:47 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
WorobjoffУ меня нет C# 8, поэтому не знаю как оно будет. тут https://sharplab.io тоже не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:04 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyобрати внимание на то, что это деградация по сравнению с классическим Visual Basic.В каком смысле деградация? В классическом VB полноценной поддержки наследования отродясь не было, и даже реализация интерфейсов половинчатая. Чтобы дернуть реализованный метод у класса, нужно в обязательном порядке переменную класса приводить к типу интерфейса, иначе method not found. Все интерфейсы должны использоваться явно, поэтому коллизии исключены. c# никак не ограничивает разработчика в явном использовании интерфейсов, но по сравнению со старым добрым VB наделяет возможностями неявного использования. По-моему это не деградация, а развитие. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:17 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Antonariy...В классическом VB полноценной поддержки наследования отродясь не было, и даже реализация интерфейсов половинчатая.... Реализация интерфейсов это и есть разумная реализация множественного наследования. AntonariyЧтобы дернуть реализованный метод у класса, нужно в обязательном порядке переменную класса приводить к типу интерфейса, иначе method not found. Это автоматически разделяет ответственности. И в этом нет ничего ни глупого, ни неудобного. Antonariy Все интерфейсы должны использоваться явно, поэтому коллизии исключены. или не использоваться вообще . И это правильно . Antonariyc# никак не ограничивает разработчика в явном использовании интерфейсов, но по сравнению со старым добрым VB наделяет возможностями неявного использования. По-моему это не деградация, а развитие. Не знаю, как это точно называется, но очень похоже на ООП головного мозга. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 13:52 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
фича сомнительной полезности, сомневаюсь, что местные сторожили будут ей активно пользоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 14:44 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyРеализация интерфейсов это и есть разумная реализация множественного наследования. Реализация интерфейсов к наследованию вообще никаким боком, потому как интерфейс - это публичный контракт, и его реализация - это реализация заявляемого контракта. boobyЭто автоматически разделяет ответственности. И в этом нет ничего ни глупого, ни неудобного. Ответственности чего разделяет от чего? Класса от его контракта? Это как раз и есть глупость, потому что для внешнего потребителя класс - это в первую очередь его контракт, состоящий в т.ч. и из контракта базовых классов и интерфейсов. Вы всегда перед вызовом метода базового класса приводите тип? boobyНе знаю, как это точно называется, но очень похоже на ООП головного мозга. Лучше узнать, а то в такой аргументации видны только одни эмоции. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 15:35 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Roman Mejtesфича сомнительной полезности, сомневаюсь, что местные сторожили будут ей активно пользоваться.Я буду, потому что такой кейс 21962841 у меня случается. Можно с чистой совестью выкинуть базовый класс. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 15:52 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, правильный ответ на вашу ремарку составляется методом перестановки ваших же слов. И лучше, чтобы вы попробовали сделать это сами. Что до эмоций - у меня их нет совсем. Вместо эмоций есть уверенность в том, что "фича" будет использоваться обязательно . И не просто кто-то скажет: - "как же стало хорошо, как же я жил до сих пор без этого", более того - обязательно кто-то скажет: "вот только ради этой великолепной возможности я и перешел на c# с языка имярек". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 16:07 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyAntonariy...В классическом VB полноценной поддержки наследования отродясь не было, и даже реализация интерфейсов половинчатая.... Реализация интерфейсов это и есть разумная реализация множественного наследования. AntonariyЧтобы дернуть реализованный метод у класса, нужно в обязательном порядке переменную класса приводить к типу интерфейса, иначе method not found. Это автоматически разделяет ответственности. И в этом нет ничего ни глупого, ни неудобного.В программировании на ассемблере тоже нет ничего глупого или неудобного. Как нет ООП и кучи иных шаблонов программирования, облегчающих производство кода. Разработчики сишарпа думаю следующим образом (потому что думают о собственном удобстве): если мы дергаем у объекта метод с уникальной сигнатурой, нахрена парить разработчика (самого себя) необходимостью приведения объекта к тому интерфейсу, который описывает эту сигнатуру? Компилятор и сам может догадаться, где искать реализацию. А вот есть сигнатура не уникальная, разработчику придется определиться с интерфейсом. boobyAntonariy Все интерфейсы должны использоваться явно, поэтому коллизии исключены. или не использоваться вообще . И это правильно .Ну не используйте, что ж так курсив надрывно мусолить. В вашем случае более правильным будет вообще сишарп не использовать. Back to Basics! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 16:48 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyСон Веры Павловны, правильный ответ на вашу ремарку составляется методом перестановки ваших же слов. И лучше, чтобы вы попробовали сделать это сами. С чего бы это? Бремя доказательства лежит на утверждающем. boobyЧто до эмоций - у меня их нет совсем. Использование негативно окрашенных эпитетов вместо явной предметной аргументации и есть признак эмоций. Если эмоций нет - давайте аргументы, а не вот эти все "деградации", "завиральные идеи", и прочие "штаны на лямках". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 16:56 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Antonariy... А вот есть сигнатура не уникальная, разработчику придется определиться с интерфейсом. ... вы не заметайте под ковер существо дела - не "определиться", а выбрать, какой единственный вариант единственного интерфейса, из заявленного к наследованию множества, будет реализован. Конечно, вы можете купить автомобиль Форд-T любого цвета, при условии, что он чёрный. Это как раз следствие вашего удобства и прогресса вашего компилятора. PS Очень сильно надеюсь, даже уверен, и совершенно счастлив тем, что c# мне уже не придется использовать никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 18:10 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны... С чего бы это? Бремя доказательства лежит на утверждающем. ... Вы не поверите, но вам я ничем не обязан. Хотя бы потому, что мой пост, на который вы оставили ремарку, не вам был адресован. Вы как раз и есть утверждающий: авторРеализация интерфейсов к наследованию вообще никаким боком, потому как интерфейс - это публичный контракт, и его реализация - это реализация заявляемого контракта. попробуйте разобраться с этим вашим утверждением самостоятельно. Где его концы и начала, и кто с кем и как связан. И должно ли из него следовать, что класс сам по себе не предоставляет публичный контракт своего использования и не имеет интерфейса. Ведь у вас штаны не лямках? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 18:31 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyОчень сильно надеюсь, даже уверен, и совершенно счастлив тем, что c# мне уже не придется использовать никогда. До свиданья! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 20:41 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyPS Очень сильно надеюсь, даже уверен, и совершенно счастлив тем, что c# мне уже не придется использовать никогда.c# тоже рад, что вы больше никогда не будете его использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 20:53 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
booby, ха-ха-ха))) Вам бы в каком-нибудь реалити-шоу выступать, вроде бы там такой стиль дискуссий (лет 20 назад именно такой и был там). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 22:14 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
LR, у Окнах Нагиева? :D ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 22:19 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
ЕвгенийВboobyОчень сильно надеюсь, даже уверен, и совершенно счастлив тем, что c# мне уже не придется использовать никогда. До свиданья! Всего доброго, хотя с вами мы даже не здоровались в этом топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 22:25 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Roman Mejtes, не знаю - раз, ну может два, посмотрел этот жанр в те далекие времена, ну, сами понимаете, этот жанр для бессмертных - у них времени дофига)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 22:27 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
AntonariyboobyPS Очень сильно надеюсь, даже уверен, и совершенно счастлив тем, что c# мне уже не придется использовать никогда.c# тоже рад, что вы больше никогда не будете его использовать. у вас нет возможности сказать "тоже" прямо потому, что мой исходный пост был обращён непосредственно и лично к вам. Но я принимаю ваш выход из беседы, впервые за несколько последних попыток разговора, пригодный к интерпретации в разумных терминах. Удачи и удачи и счастья и ещё раз удачи в деле получения удовольствия от программирования на самом лучшем из языков, у которого все, до самых мелочей сделано, как в самом вражеском и непригодном к использованию языков, которым владеет единственная корпорация и имя которому Java. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 22:31 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
То есть еще и java-сообщество избавлено от вашей прикладной деятельности? А жизнь-то налаживается. Так, глядишь, и средний уровень мирового говнокода заметно повысится. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 23:34 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Antonariy...средний уровень мирового говнокода ... Ай-ай... Это вы программируете на самых лучших из всех иных языков. Вас миллионы востребованных повсеместно. Вы - это и есть уровень. И самые лучшие из языков развиваются только и исключительно для вашего удобства. Зачем же ты меня в своих миллионах уровня замазываешь? И особенно, с учётом того, что и слущшать не хочешь... Антонарий, да ты - лучший! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 23:45 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
Пошла жара :) Какие к чёрту интерфейсы... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 01:09 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyчто c# мне уже не придется использовать никогда а до этого били палками и макали в C# лицом соболезную вашей боли ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 01:11 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
hVostt, Дима угомонись - ночь на дворе... PS солидарность с коллегами - это большое зашибись, но неплохо было бы и слово какое, по случаю подходящее, произнести. PS2 Твое самолюбование мне известно, но в целом оно не не выглядит как шизофреническое. Подумай над ключевым словом, подходящим к теме топика... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 01:19 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
а.. понял, очередной самоутверждающийся генератор бреда подъехал ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 03:05 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
hVosttа.. понял, очередной самоутверждающийся генератор бреда подъехал мда... Что-ж, слив засчитан, Антонарий пока, действительно, объективно - лучший. Он несколько раз за топик ближе всех подошёл к нужному слову, но ни разу не произнёс его. При этом нутром чуя, что заявленная фича - это именно то, без чего он дальше жить не будет. И его чуйка предопределена ясно выраженным удовлетворением от удобства "неявного" использования интерфейса, (т.е., в переводе с русского на русский - как раз явного использования метода реализуемого интерфейса как собственного метода класса - ибо персонально ему, как программисту сие удобно .) Специально для него, Антонария, и дается возможность использовать интерфейсы не в качестве притянутых Сном Веры Павловны из замшелых скрижалей "протоколов", а в качестве современных (известных с самых первых версий Pascal, как минимум) traits . Но это не то, что во всяких утиных языках с динамической типизацией, или совсем замшелых Pascal, имитирующих сияние ООП противными структурами. Это чистая, с Java списанная, идея о том, что мы уже не помним, зачем вообще ввели в синтаксис языка интерфейсы как синтаксические конструкции - не больно они были нам и нужны внутри наших собственных сред. Да и была это дичь и нелепая реализация раньше, только заради утилитарного кода, которого иным способом, до внедрения делегатов и обобщений и писать-то разумным способом иначе не могли. Зато таперь , когда есть обобщения и делегаты, и нам почти, за вычетом ну уж совсем дико никому не нужных, бессмысленных и устарелых ситуаций новые интерфейсы в смысле "протоколов" никак не сдались, жизнь внезапно улучшится. У нас же ведь уже написаны 100500 классов, реализующих теперь уже бессмысленные интерфейсы, и есть унаследованный утилитарный код, использующий их. Вот теперь, в пятницу, сразу после дождя в четверг, мы усовершенствуем этот код, добавив новый метод в интерфейс с реализацией по умолчанию. И нам не нужно менять ни строчки ни в одном из 100500 классов. Очевидно, что Антонарию жить дальше без этого невозможно. И, хотя раньше он думал, что ему невозможно жить без явной иерархии наследования классов, теперь у него новая счастливая невозможность, благодаря которой он даже откажется от одного из базовых классов. Почему для реализации статически проверяемых внедрений методов (traits) нужно было дословно использовать тот же заход, что и в Java - не имеет значения. Кто вспомнит завтра, что [Сон Веры Павловны] говорил про интерфейсы вчера... Счастье будущего использования уже пришло , причем само . Глупо помнить о "протоколах", когда впереди сплошная радость бесшовного внедрения новых методов как собственных методов класса, без исправления единой строчки в них и, как бонус, отказ от наследования от одного из абстрактных классов. Да и бог с тем, что еще вчера наследование не виделось иначе как главная ценность и преимущество над устаревшими языками... Счастья вам от нового программирования, ребята. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 03:56 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyПочему для реализации статически проверяемых внедрений методов (traits) нужно было дословно использовать тот же заход, что и в Java - не имеет значения. хз чё вы к этой несчастной джаве прицепились проблема в трейтсах, самая очевидная, но боюсь не для вас -- увы, в том, что вы не получите свои трейтсы нормальным образом через рефлексию. а дефолтные методы интерфейсов -- да. boobyДа и бог с тем, что еще вчера наследование не виделось иначе как главная ценность и преимущество над устаревшими языками... и что изменилось, внезапно? так и есть. boobyЧто-ж, слив засчитан вот было бы кому и что сливать. вы, наверное, несказанно радуетесь что умнее табуретки и не преминёте об этом всем и каждому сообщать? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 04:18 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
hVostt, рефлексия - это к доктору. Не всегда надо произносить слова, которые где-то слышал, после того, как свет погас. Всего доброго, Дима - любуйтесь собой и рефлексируйте дальше уже самостоятельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 04:30 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
AntonariyЗато таперь, когда есть обобщения и делегаты,можно писать еще больше треша и угара. Как раз сейчас переписываю проект, чуть более чем на половину построенный на делегатах. Делегаты были применены для построчной обрабатывать записей, то есть берется запись из List и передается аргументом в делегат, в делегате она обычно как-нибудь преобразовывалась в object[] и отправлялась в эксель. Сделано это было для того, чтобы юзер в любой момент мог прервать процесс обработки и вывода данных (бизнес и output в одном делегате), если ему надоест ожидание. В результате такого подхода код превратился с одной стороны в невразумительный сильно связанный фарш, хотя по идее делегаты должны ослаблять связи, с другой стороны распух из-за условий, при которых в одном и том же делегате разные записи приходилось обрабатывать по-разному, и в итоге стал безысходно тромозным говном. Что такое построчная работа с экселем не нужно объяснять тем, кто работал с экселем. От безысходности авторы пару раз даже применили выкладывание результатов пачками по 50 записей. Собирая пачку делегатом. В общем, я это говно выкидываю, не читая. Теперь берутся исходные модели, линком собираются в финальную модель, та пребразовывается в object[,] и вываливается в эксель целиком. И все это происходит в одной процедуре, написанной декларативным языком. Я уже начинаю забывать, для чего нужны for, foreach и while. Юзер потерял возможность прерывать процессы, но так же потерял нужду прерывать большую их часть, так как они заметно ускорились. А вот ООП-структура была мало затронута изменениями. Самые большие изменения произошли при перемещении некоторых слоев в отдельные сборки. И в том же солюшене отдельной кучкой проектов обосновалась система (по своей структуре на меньшее определение оно не тянет) сохранения настроек, за каким-то хером задуманная универсальной. При том, что в нее же вкорячен некоторый UI, от которого универсальностью даже не пахнет. Вообще без делегатов, но напичканная ВСЕМИ ООП-шаблонами, мало-мальски котирующимися на собеседованиях. После ее глубокого изучения остался всего один вопрос: блеать, как настройки-то сохраняюца??? Это был небольшой пример того, что говнокод можно писать с применением абсолютно любых инструментов, приемов и возможностей языка. И на фоне этого примера смешно и нелепо выглядят кванторные сравнения одних практик в пользу других. У меня есть интерфейсы, в которых методы принимаю делегаты, а все типы - дженерики с ограничениями по другим интерфейсам. И нет проблем, все читаемо, как букварь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 09:34 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyhVostt, рефлексия - это к доктору.А рефлексия вообще незаменимая штука в низкоуровневом коде. И StackTrace жизнь упрощает, если не месить его в одной куче с async/await. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 09:38 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
ООП - говно. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 10:00 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
ViPRosООП - говно.Это точка зрения мухи или прынцессы? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 10:46 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
boobyНе всегда надо произносить слова, которые где-то слышал, после того, как свет погас. какие-то нелепые и неуместные пассажи boobyВсего доброго, Дима - любуйтесь собой и рефлексируйте дальше уже самостоятельно. непонятно с чего вы взяли, что я Дима, видимо это шиза обыкновенная ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 16:57 |
|
что будет с интерфейсами?
|
|||
---|---|---|---|
#18+
ViPRosООП - говно. звучит как название шлягера ) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 16:58 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1398825]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 305ms |
0 / 0 |