Zpo-8-wyk-Slajd35
Incomplete Library Classs
Niekompletność klasy bibliotecznej nie jest wynikiem błędu programisty korzystającego z tej klasy, jednak niewątpliwie stanowi zagrożenie dla struktury programu. Brakująca funkcja musi być zaimplementowana w miejscu, w którym intuicyjnie będzie można ją odnaleźć.
Sugerowane są dwa rozwiązania: w prostych przypadkach należy zaimplementować funkcję po stronie klienta, opatrując ją komentarzem dotyczącym niewłaściwej lokalizacji i jej przyczyn. Jeżeli brakuje większej liczby funkcji, wówczas można zastosować tzw. lokalne rozszerzenie klasy bibliotecznej, czyli specjalizowaną podklasę lub opakowanie (ang. wrapper ), posiadające te funkcje. Oba rozwiązania mają wady, które wpływają na decyzję dotyczącą ich zastosowania. Stworzenie podklasy wymaga, aby klasa była niefinalna, z drugiej strony udostępnia jednak składowe klasy aż do poziomu chronionego. Aby stworzyć opakowanie należy m.in. zaimplementować interfejs klasy bibliotecznej, co oznacza, że jego brak uniemożliwia zastosowanie tego rozwiązania. Ponadto opakowanie ma dostęp jedynie do publicznych składowych klasy bibliotecznej.