Pytania otagowane jako inheritance

Dziedziczenie to sposób na ponowne użycie kodu istniejących obiektów lub ustanowienie podtypu z istniejącego obiektu, lub obu, w zależności od obsługi języka programowania.


9
Dziedziczenie vs Kompozycja do kawałków szachowych
Szybkie wyszukiwanie tej wymiany stosów pokazuje, że ogólnie kompozycja jest ogólnie uważana za bardziej elastyczną niż dziedziczenie, ale jak zawsze zależy od projektu itp. I są chwile, kiedy dziedziczenie jest lepszym wyborem. Chcę stworzyć grę w szachy 3D, w której każdy element ma siatkę, być może różne animacje i tak …

2
Prawidłowy projekt, aby uniknąć użycia dynamic_cast?
Po przeprowadzeniu niektórych badań nie mogę znaleźć prostego przykładu rozwiązującego często spotykany problem. Powiedzmy, że chcę utworzyć małą aplikację, w której mogę tworzyć Squares, Circles i inne kształty, wyświetlać je na ekranie, modyfikować ich właściwości po ich wybraniu, a następnie obliczać wszystkie ich obwody. Zrobiłbym klasę modelu w ten sposób: …

1
Zmiana sygnatury metody implementacji klas w PHP
Czy istnieje jakieś przyzwoite rozwiązanie problemu braku generycznych wersji PHP, które umożliwiają statyczną kontrolę kodu w celu wykrycia spójności typu? Mam klasę abstrakcyjną, którą chcę podklasować, a także wymuszam zmianę jednej z metod z przyjmowania parametru jednego typu na przyjmowanie parametru, który jest podklasą tego parametru. abstract class AbstractProcessor { …

5
Skąd wiemy, że preferowanie kompozycji zamiast uogólnienia jest zawsze właściwym wyborem?
Niezależnie od tego, czy obiekt istnieje fizycznie, czy nie, możemy modelować go na różne sposoby. W wielu przypadkach moglibyśmy arbitralnie zastosować uogólnienie lub kompozycję. Jednak zasada GoF „faworyzuj kompozycję zamiast uogólnienia [sic]” prowadzi nas do użycia kompozycji. Kiedy modelujemy na przykład linię, tworzymy klasę zawierającą dwa elementy PointA i PointB …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.