Într-un proiect, echipa noastră utilizează liste de obiecte pentru a efectua operațiuni de masă pe seturi de date care ar trebui să fie toate procesate într-un mod similar. În special, obiecte diferite ar acționa în mod ideal la fel, ceea ce ar fi foarte ușor de atins cu polimorfismul. Problema pe care o am cu aceasta este că această moștenire implică relația este , mai degrabă decât are o relație . De exemplu, mai multe obiecte au un contor de daune , dar pentru a face acest lucru ușor de utilizat într-o listă de obiecte, ar putea fi folosit polimorfismul - cu excepția faptului că ar presupune o relație este nu ar fi adevărat. (O persoană nu este un contor de daune .)
Singura soluție la care mă pot gândi este ca un membru al clasei să returneze tipul obiectului propriu zis atunci când este implicit alcătuit în loc să se bazeze pe moștenire. Ar fi mai bine să renunțăm la ideea este / are un ideal în schimbul ușurării programării?
Editați | ×:
Pentru a fi mai specific, folosesc C ++, deci utilizarea polimorfismului ar permite obiectelor diferite să "acționeze la fel" în sensul că clasele derivate ar putea locui într-o singură listă și să fie operate de o funcție virtuală a clasei de bază. Folosirea unei interfețe (sau imitarea acesteia prin moștenire) pare a fi o soluție pe care aș fi dispusă să o folosesc.