-
Notifications
You must be signed in to change notification settings - Fork 1
/
SOLID i GRASP.rtf
15 lines (15 loc) · 2.39 KB
/
SOLID i GRASP.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{\rtf1\ansi\ansicpg1250\deff0\nouicompat\deflang1045{\fonttbl{\f0\fnil\fcharset238 Calibri;}{\f1\fnil\fcharset0 Calibri;}}
{\*\generator Riched20 10.0.19041}\viewkind4\uc1
\pard\sa200\sl276\slmult1\qj\b\f0\fs22 SOLID\b0 :\par
- \b Single responsibility \b0 - ka\'bfda z utworzonych przez nas klasy odpowiada tylko za jedn\'b9 funkcjonalno\'9c\'e6 - GUI zajmuje si\'ea wy\'9cwietlaniem interfejsu, Entry porz\'b9dkuje dane o danym pytaniu z testu, TestStruct porz\'b9dkuje dane o te\'9ccie, natomiast Database pozwala na operacje wej\'9ccia/wyj\'9ccia test\f1\lang1033\'f3\f0\lang1045 w.\par
- \b Open/closed\b0 - nasza klasa GUI nie przestrzega tej zasady; metoda showMenu() umo\'bfliwia dodanie innych zak\'b3adek do wyboru, jednak\'bfe konieczna by\'b3aby modifakcja tej metody (a\~dok\'b3adniej dodanie kolejnego przypadku do instrukcji switch). Podobnie w przypadku metody display() - kolejna zak\'b3adka by\'b3aby kolejnym wywo\'b3aniem metody po spe\'b3nieniu warunku, kt\f1\lang1033\'f3\f0\lang1045 ry nale\'bfa\'b3oby modyfikowa\'e6.\par
- \b Liskov substitution \b0 - zasada ta nie dotyczy naszego projektu, poniewa\'bf nie u\'bfywamy mechanizmu dziedziczenia.\par
\b - Interface segregation \b0 - ta zasada r\f1\lang1033\'f3\f0\lang1045 wnie\'bf nie dotyczy naszego projektu, poniewa\'bf projekt nie zawiera interfejs\f1\lang1033\'f3\f0\lang1045 w ani klas abstrakcyjnych.\par
\b - Dependency inversion \b0 - ta zasada r\f1\lang1033\'f3\f0\lang1045 wnie\'bf nie dotyczy naszego projektu - nie korzystamy z\~mechanizmu dziedziczenia.\par
\f1\lang21\par
\b\f0\lang1045 GRASP\b0 :\par
- \b Information Expert\b0 - metody wykonuj\'b9ce poszczeg\f1\lang1033\'f3\f0\lang1045 lne operacje znajduj\'b9 si\'ea w tych klasach, kt\f1\lang1033\'f3\f0\lang1045 re maj\'b9 najlepszy dost\'eap do danych, na kt\f1\lang1033\'f3\f0\lang1045 rych maj\'b9 zosta\'e6 wykonane te operacje.\par
-\b Creator\b0 - nie do ko\'f1ca przestrzegamy t\'ea zasad\'ea; klasa Database tworzy tzw. dummy data w taki spos\f1\lang1033\'f3\f0\lang1045 b, \'bfe tworzy obiekty klasy Entry oraz obiekt klasy TestStruct i to w\'b3a\'9cnie klasa Database przypisuje obiekty Entry do wektora wewn\'b9trz obiektu klasy TestStruct. Sam TestStruct nie wykonuje w tym przypadku nic.\par
- \b Controller\b0 - naszym kontrolerem jest funkcja main, od kt\f1\lang1033\'f3\f0\lang1045 rej rozpoczyna si\'ea ca\'b3y program. Nie u\'bfywamy tutaj obiektu.\f1\lang21\par
}