Size: a a a

2021 April 27

TK

Traveller Kolsky in rust_offtopic
Надо сказать, у них относительно хорошо вышло
источник

Т8

Т-34 85 in rust_offtopic
всё верно. Ты берёшь класс из Qt и НАСЛЕДУЕШЬСЯ от него, добавляя/изменяя что тебе нужно. При этом тоже нет контроля над исходным классом
источник

TK

Traveller Kolsky in rust_offtopic
Наследование является способом решить проблему, но далеко не единственным, в частности, он чаще добавляет головной боли
источник

TK

Traveller Kolsky in rust_offtopic
Для gui ооп хорошо работает
источник

TK

Traveller Kolsky in rust_offtopic
Для всего остального... Не факт.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
наследование реализации нинужна
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
отсюда вывод что не нужны интерфейсы, нужны тайпклассы
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и классы не нужны, нужны структуры
источник

Т8

Т-34 85 in rust_offtopic
расскажи это C# 8
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
C# 8 мусор, сказал
источник

KR

Kai Ren in rust_offtopic
В том то и дело, что ты порождаешь новый тип, а не используешь существующий. И это создаёт проблемы, например, когда ответственность за порождение типов лежит не на тебе, ты их получаешь готовые, но тебе с ними надо работать активно и полиморфно в рамках своего домена. В твоём случае здесь уже напрашиваются апкасты/даункасты, если не ошибаюсь.
источник

TK

Traveller Kolsky in rust_offtopic
Так нельзя. Для dyn Trait можно, но мало смысла.
источник

Т8

Т-34 85 in rust_offtopic
The main benefit that default methods bring is that now it is possible to add a new default method to an existing interface without breaking the classes that implement that interface. In other words, this feature makes it optional for implementers to override the method or not.

An excellent scenario for this feature is the logging example that is described below; the ILogger interface has one abstract WriteLogCore method. All of the other methods, like WriteError and WriteInformation, are default methods that call the WriteLogCore method with a different configuration. The ILogger implementer has to implement only the WriteLogCore method.

Think of how many lines of code that you have saved in each inherited class of the logger type.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
это не наследование реализации
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
если что
источник

Т8

Т-34 85 in rust_offtopic
дефолтный метод в интерфейсе - это он самый
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
нет
источник

TK

Traveller Kolsky in rust_offtopic
Дефолт-имплементация может предполагать очень мало и является тривиальной
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ты не можешь 2 раза по-разному его оверрайдннуть
источник

TK

Traveller Kolsky in rust_offtopic
И его можно только один раз оверрайднуть, ага
источник