![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
hej, próbuję okiełznać częściowo php5 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) i mam takie pytanie:
Czy da się w jakiś sposób implementować interfejs w danej klasie, ale tak, aby w tej klasie były wymagane tylko konkretne metody, które zawiera interfejs i żeby nie była wymuszana konkretna ilość argumentów dla tych metod? Wiadomo, że interfejsy wymagają utworzenia w klasie konkretnych metod z konkretną ilością parametrów. Ja chciałbym natomiast mieć taki interfejs, który będzie wymagał tylko tego, żeby w klasie znajdowały się metody o konkretnych nazwach, ale w różnych implementacjach będą one miały różną liczbę argumentów. Da się coś takiego zrobić? Po prostu mam kilka klas, które mają takie same schematy nazewnictwa metod, ale czasami w niektórych metodach jest potrzeba podania większej ilości argumentów niż w innych klasach. Można to oczywiście uwzględnić w interfejsie i dodać parametry do wszystkich metod, ale wtedy te dodane parametry będą w niektórych miejscach w ogóle niewykorzystywane... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedzi.
Chyba jednak zdecyduję się na zrobienie większej ilości interfejsów dla paru wyjątkowych klas. Po prostu wydaje mi się, że interfejsy służą także do ujednolicenia budowy kilku klas (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Może się mylę... W każdym razie mogę Wam przedstawić mój konkretny przykład. Mam sobie taką klasę
I mam jeszcze kilka innych klas o takiej samej budowie, tylko że mają obsługiwać one inne dane. Niektóre z nich posiadają jakieś dodatkowe metody, ale wszystkie z nich muszą posiadać te, co ta klasa napisana powyżej. Tylko akurat jedna z klas nie potrzebuje żadnego parametru przy metodzie getAll(), więc dla niej i tej podobnych klas zrobię oddzielny interfejs. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 13:44 |