Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obiekt czy obiekty, problem ze zrozumieniem zagadnienia
Fixus
post
Post #1





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


Witam,
mam problem z rozwiązaniem pewnego zagadnienia. Nie chodzi o samo programowanie, ale o dobre podejście do tego.

Posłużę się chyba najprostszym przykładem. Moduł obsługi usera

Mamy obiek User który ma następujące właściwości
  1. public $name;
  2. public $surname;


posiada też metody get set

Zastanawiam się czy obiekty takie jak register (rejestracja), editData (edycja) powinny zawierać się w tym obiekcie czy w jakimś np. User_control ?

Czy to powinno być rozbijane czy nie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
l3l0
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 16
Dołączył: 24.07.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Cytat(Fixus @ 1.02.2010, 13:16:34 ) *
Zastanawiam się czy obiekty takie jak register (rejestracja), editData (edycja) powinny zawierać się w tym obiekcie czy w jakimś np. User_control ?

Czy to powinno być rozbijane czy nie ?


Witam,

Myśle żę na to pytane nie ma jedoznaczej odpowiedzi.
Ogólnie musisz przemyśleć czy rozbicie tej klasy na więcej klas coś Ci da...
Tak samo jak ze wzoracami projektowymi, przecież nie używa się ich ponieważ wszyscy mówią że są super, a dlatego że pomagają w utrzymaniu aplikacji. Czasem po prostu nie warto używać wzorca ponieważ może on tylko zaciemnić i skąplikować nasz kod, tak samo w tym przypadku.
Jeśli nie masz pojęcia dlaczego miałbyś rozbjać tą klase to lepiej tego nie rób. Najwyżej póżniej jeśli się okaże że jest to potrzebne zrobisz refactoring.
Go to the top of the page
+Quote Post
Fixus
post
Post #3





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


brzmi to sensownie smile.gif

Po prostu czasami się zastanawiam czy LOGICZNIE jest aby obiekt User sam siebie dodawał i sam siebie edytował. Jednak to chyba niepotrzebne komplikowanie sprawy
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
brzmi to sensownie

Po prostu czasami się zastanawiam czy LOGICZNIE jest aby obiekt User sam siebie dodawał i sam siebie edytował. Jednak to chyba niepotrzebne komplikowanie sprawy


Fakt brzmi sensownie ale wedlug ciebie co powinien robic modul logowania?

Autoryzacja i tyle,rejestracja to inna logika inny widok inny model ogolnie osobny modul tak samo z edycja danych user'a raczej wypadaloby wsadzic do modulu profilu.

Latwiej jest zmodyfikowac/edytowac/rozszerzyc jeden klocek niz caly dom z klockow.



PS.

Cytat
Ogólnie musisz przemyśleć czy rozbicie tej klasy na więcej klas coś Ci da...


Da logike dzialania danego modulu nie mozna wszystkiego pakowac do jednej klasy czy jednego modulu jak nie to znow wracamy do programowania proceduralnego/funkcyjnego i do burdelu w kodzie.



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Fixus
post
Post #5





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


Cytat
PS.

Cytat
Ogólnie musisz przemyśleć czy rozbicie tej klasy na więcej klas coś Ci da...


Da logike dzialania danego modulu nie mozna wszystkiego pakowac do jednej klasy czy jednego modulu jak nie to znow wracamy do programowania proceduralnego/funkcyjnego i do burdelu w kodzie.


Tym trafiłeś w sedno. Moje pytanie właśnie wynikło z wątpliwości dotyczące tej różnicy. Ponieważ nie chce tworzyć jednej klasy z metodami która de facto stanie się plikiem z funkcjami, a zrobić to sensownie. Szukam tej granicy, która pomoże mi odpowiednio rozdzielać całość smile.gif
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Dlatego najpierw podziel dobrze logike co kazdy modul ma robic i potem to zaimplementuj smile.gif.

Jak nie to wszystko mozna wsadzic do jednej klasy i  guitar.gif gra smile.gif a potem burdel na maxa i wlasciciel kodu nie wiem gdzie ma rece wlozyc biggrin.gif



--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
cojack
post
Post #7





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Dajcie spokój z tym burdelem, co tu dziwki na forum się ogłaszają czy co?

Ogólnie sprawa z Userem jest bagatela szeroka jak rzeka i głęboka jak morze. Założenia projektowe powinny być takie że sama klasa bazowa User powinna być klasą abstrakcyjną dziedziczącą interfejs w którym byśmy zaimplementowali pewne ograniczenia. Narzuci to rygorystyczne wymagania do klas dziedziczonych, ale tym się nie ma co przejmować bo każda tak czy siak będzie musiała to posiadać. Zmienne, ja Ci dam public, to Cię krew zaleje. O Hermetyzacji Pan słyszał? No to już usłyszał a teraz poczyta. Modułowo obiektowo, nie wiem czy do końca ogarnąłeś temat ocb ale sprawa jest prosta jak budowa cepa, w oop jest jedna zasada: DZIEL I RZĄDŹ. Możesz mieć fabrykę do ogarnięcia klasy usera, taka czysta forma abstrakcji, i bardzo ładnie się nią posłużysz. Kwintesencja modułowego programowania zorientowanego obiektowo.


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
Go to the top of the page
+Quote Post
marcio
post
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
Dajcie spokój z tym burdelem, co tu dziwki na forum się ogłaszają czy co?


Niekorych botow na forum traktuje nawet gorzej biggrin.gif.

Cytat
Założenia projektowe powinny być takie że sama klasa bazowa User powinna być klasą abstrakcyjną dziedziczącą interfejs w którym byśmy zaimplementowali pewne ograniczenia. Narzuci to rygorystyczne wymagania do klas dziedziczonych, ale tym się nie ma co przejmować bo każda tak czy siak będzie musiała to posiadać


Na php.net czy gdziekolwiem indziej nie ma zadnej reguly na implementacje klasy USER kazdy to robi jak chce,jak mu wygodniej i jak pasuje pod jego system chodz fakt faktem interfejsy czasami sa niezbedne.

Regula wedlug mnie jest to ze w OOP nie wrzuca sie wszystkiego do jednego wora i tyle.
Reszta, implementacja to sprawa kodera nie kazdy framework obsluguje to tak samo, przynajmniej mi sie tak wydaje wiec prosze nie generalizowac.

Pozdro smile.gif

Ten post edytował marcio 1.02.2010, 23:36:11


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
dr4ko
post
Post #9





Grupa: Zarejestrowani
Postów: 49
Pomógł: 4
Dołączył: 16.07.2008
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Wszystko zależy od tego co piszesz. Jeśli to jest jednorazowa robota, piszesz, zgarniasz kasę i zapominasz o sprawie to pisz jak ci się podoba. Ale jeśli aplikacja ma być rozwijana to pisz tak, żeby kod był skalowalny, czyli rozbijaj na moduły i za chiny nie wrzucaj obsługi tworzenia użytkownika do jego klasy.


--------------------
devFactor
Go to the top of the page
+Quote Post
Fixus
post
Post #10





Grupa: Zarejestrowani
Postów: 295
Pomógł: 9
Dołączył: 8.02.2006

Ostrzeżenie: (0%)
-----


Tylko trzymać to np. w jakiejś klasie Profile ?
Go to the top of the page
+Quote Post
marcio
post
Post #11





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


logowanie - modul:auth,login,signin
rejestracja - modul:register
zarzadznie prifilem - modul:profile
przykladowe nazwy modolow i ich zadanie

Ten post edytował marcio 4.02.2010, 17:55:34


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:28