Wpis z mikrobloga

Siema Mirki i Mirabelki lubiące #programowanie w #jezykc i #cpp ( ͡º ͜ʖ͡º)

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! ʕʔ
CppPolska - Siema Mirki i Mirabelki lubiące #programowanie w #jezykc i #cpp ( ͡º ͜ʖ͡º...

źródło: comment_TepYasEAnAclwYSBNidy4uKNZg9By4i5.jpg

Pobierz
  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
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.
  • Odpowiedz
@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
  • Odpowiedz