Aktywne Wpisy
Giga_Przegryw +10
Obstawiajcie kto zostanie nowym prowadzącym głównego wydania wiadomości w #tvpis. Dla mnie absolutny pewniaczek to ktoś z trójcy fajnopolaków - albo Krasko albo Durczok albo Tomasz Lis.
Skopiuj link
Skopiuj linkWykop.pl
Załóżmy, że chcę założyć klasę o nazwie Employee, która będzie zawierała dane dot. pracownika oraz kilka metod. Pola jakie chcę dodać do tej klasy to Name, salary, year, month oraz day. Rozumiem, że dobrą praktyką programistyczną będzie zrobienie oddzielnej klasy ( np. o nazwie Information ), w której będą znajdowały się te pola oraz ich settery i gettery? W jaki sposób powinienem to zaimplementować?
Klasa informacje oczywiscie wyglada tak:
public Class Information{
pola;
konstruktor inicjujacy wszystkie pola;
settery;
gettery;
}
a klasa Employee?
public Class Employee{
Information informacja;
metody;
konstruktor - i tu moje pytanie - w parametrach tego konstruktora maja byc informacje, ktore potem przekazuje do konstruktora obiektu Information? I ten konstruktor obiektu Information mam wywolac w konstruktorze klasy Employee czy jak?
}
Przepraszam, jeśli trochę zamieszałem, mam nadzieję, że wiadomo o co chodzi :)
#programowanie #java
PS Information to strasznie #!$%@? nazwa, nic nie mówi.
@Bokser92: nie. to powinno się dac w klasie employe. Tu masz tak zwaną kompozycję-praktycznie każdy z tych elementów "name", "salary" będzie elementem klasy Pracownik. Klasa information jest dość sztuczna.
Chyba, że byś miał jakiś sensowny powód, że chcesz odchudzić klasę pracownik, bo tych informacji miałbyś np 100 różnych pól.
Do oddzielnej klasy możesz wrzucać coś co naturalnie
@alosha: że co O.o ?
Zmienny stan to zło. I należy go eliminować.
@Yahoo_: @dixx: Ok rozumiem. Ale w przypadku, gdy przyda się ta oddzielna klasa to w jaki sposób powinienem wywoływać ten drugi konstruktor? Np konstruktor klasy Samochód wywołać w konstruktorze klasy Employee?
@Bokser92: Nie w każdej. W każdej, którą Pan czytasz.
Polecam zmianę księgozbioru.
http://lmgtfy.com/?q=why+setters+are+bad
Przekazujesz gotową instancję do konstruktora. Oddelegowujesz tworzenie tego obiektu na zewnątrz. Inaczej łamiesz SRP (najczęściej).
Czyli:
Info i = new Info()
Employee e = new Employee(i);
podubin 2 dni temu
@cdwdj: Twoja wypowiedź jest tak żałosna, że nie wiem po co ludzie ją komentują. Zamiast cieszyć się sportem i czekać na rozpoczęcie sezonu snujesz jakieś #!$%@? teorie spiskowe podburzając tym tylko ludzi. Później wszystko kończy się w taki sam sposób. Przegraliśmy bo coś. #!$%@? najbardziej wyjątkowa nacja na świecie - Kibice Barcelony. Oni nigdy się nie mylą, zawsze pokaż całość
#heheszki #bekazpodludzi
@Bokser92 a ty co plusujesz tego klikaczkę? Była zgoda szefa?
Nie pisałem nigdy w żadnym języku funkcyjnym, a w zapytaniu które podałeś, na pierwszej stronie, o językach funkcyjnych nie ma nic. Czy mógłbyś podać jakiś bardziej konkretny artykuł, który wyjaśnia o co chodzi osobie która języków funkcyjnych nie zna?