Wielodziedziczenie to cecha programowania obiektowego, od której wielu programistów stara się odchodzić. Bardzo często spotykamy w sieci pytania na temat wielodziedziczenia, po czym otrzymujemy odpowiedzi w formie: “nie używaj, bo nie.”. Dzisiaj przedstawimy życiowy przykład, który przemawia przeciw wielodziedziczeniu właśnie.
@CppPolska: W pierwszym przykładzie Clickable nie powinien być Obiektem, bo opisuje sposób wykorzystania, czyli jakby interfejs. Ciężko tutaj jest dać przykład dziedziczenia diamentowego.
Kolejny przykład z d--y wzięty, BaseHtmlItem jest modelem HTMLowego tagu, który ani nie może być kilkoma na raz, ani nie może być nieokreślony czy tam wirtualny.
Kod nie skompiluje się, ponieważ mamy dziedziczenie
Na studiach uczyli mnie zaczynając od dziedziczenia i na tym koniec. Po latach programowania unikam dziedziczenia jak ognia. Naprawdę się dobrze zastanowię, rozrysuje na kartce czy dziedziczenie jest potrzebne.
Wolę dużo małych, niezależych ale łatwo testowalnych metod niż dziedziczenie. Dziedziczenie i mixiny uważam jako antipattern. Mówię to jako programista pythona.
@ZakreconyZszywacz: w pythonie dziedziczenie faktycznie nie ma sensu, bo duck typing w pewnie sposób określa interfejs jaki ma spełniać obiekt. W C++ bez dziedziczenia nie możesz uzyskać runtime polimorfizmu
Dziś mamy dla Was bardzo ciekawy wpis, który pomoże Wam podjąć lepszą decyzję na temat stosowania wielodziedziczenia w waszych projektach! (⌐ ͡■ ͜ʖ ͡■)
https://cpp-polska.pl/post/dlaczego-unikamy-wielodziedziczeniaij (。◕‿‿◕。)
Wielodziedziczenie to cecha programowania obiektowego, od której wielu programistów stara się odchodzić. Bardzo często spotykamy w sieci pytania na temat wielodziedziczenia, po czym otrzymujemy odpowiedzi w formie: “nie używaj, bo nie.”. Dzisiaj przedstawimy życiowy przykład, który przemawia przeciw wielodziedziczeniu właśnie.
Miłej lektury wszystkim! ʕ•ᴥ•ʔ
źródło: comment_TepYasEAnAclwYSBNidy4uKNZg9By4i5.jpg
PobierzProszę nie spamować tagu programu o wanie...
Kolejny przykład z d--y wzięty, BaseHtmlItem jest modelem HTMLowego tagu, który ani nie może być kilkoma na raz, ani nie może być nieokreślony czy tam wirtualny.
Wolę dużo małych, niezależych ale łatwo testowalnych metod niż dziedziczenie. Dziedziczenie i mixiny uważam jako antipattern. Mówię to jako programista pythona.
źródło: comment_dPnP7nXtmEp3MUVnd4XtVDbZLrPxEhQ3.jpg
Pobierz