LINUX.ORG.RU

История изменений

Исправление hummer, (текущая версия) :

Хмм, а почему она такая особенная и нераспространенная?

Наверное потому, что распространённая концепция, как с implements в Java просто хуже. Например хуже для dependency injection. Представь себе что у тебя в Java есть два интерфейса и есть несколько классов, которые реализуют оба эти интерфейса одновременно. Как инжектить эти и будущие реализации двух и более интерфейсов? Как это делать со сторонними библиотеками, изменить которые ты не можешь? Утиная типизация помогает, просто потому, что позволяет создать общий интерфейс, включающий изначальные несколько и привязаться к реализации не меняя то, чего нет - того самого implements. Инжектить через такой общий интерфейс в Go можно, а в Java нельзя. Придётся либо отказаться от dependency injection вовсе, либо городить костыли в виде классов-обёрток.

Исходная версия hummer, :

Хмм, а почему она такая особенная и нераспространенная?

Наверное потому, что распространённая концепция, как с implements в Java просто хуже. Например хуже для dependency injection. Представь себе что у тебя в Java есть два интерфейса и есть несколько классов, которые реализуют оба эти интерфейса одновременно. Как инжектить эти и будущие реализации двух и более интерфейсов? Как это делать со сторонними библиотеками, изменить которые ты не можешь? Утиная типизация помогает, просто потому, что позволяет создать общий интерфейс, включающих изначальные два или более. Инжектить через такой общий интерфейс в Go можно, а в Java нельзя. Придётся либо отказаться от dependency injection вовсе, либо городить костыли в виде классов-обёрток.