![]() |
![]() |
![]()
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%) ![]() ![]() |
Odnośnie `RADY2`, to takie coś już zrealizowałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) . Dziedziczę sobie jedną klasę w każdej z klas tzw. `modułów` (tak nazwałem klasy, które zawierają metody do operacji na danych w poszczególnych obszarach). Ta dziedziczona klasa, to sterownik bazy danych MySQL. btw. W ogóle chciałem zastosować wzorzec GenericObject, ale chciałbym (niestety) w jak najszybszym czasie wykonać to, co obecnie projektuję, a musiałbym ten wzorzec dokładnie obejrzeć przed zastosowaniem. Jak będę miał kiedyś trochę luzu, to sobie napiszę porządny framework (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
Wracając do interfejsów, to wydaje mi się rozsądnym ustawienie jednego interfejsu dla akurat tych klas, które mam, a parametry do metod planuję przesyłać jako tablicę (wtedy będzie we wszystkich metodach taka sama ilość parametrów i będą one kompatybilne z interfejsem). W tych klasach właściwie wszędzie są tylko operacje na danych i w niektórych miejscach tylko takie rzeczy jak przesyłanie/usuwanie plików. Ten przykład z postgresem i mysql-em jest dobry, bo chyba właśnie o to chodzi w interfejsach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Cóż, może moja filozofia na ich temat nie jest do końca słuszna... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 17:26 |