Zpo-8-wyk-Slajd36: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Switch Statements == | ||
[[Image:zpo-8-wyk-Slajd36.PNG| | [[Image:zpo-8-wyk-Slajd36.PNG|Switch Statements ]] | ||
Niepoprawne wykorzystanie instrukcji wyboru i warunkowej w dużym stopniu wpływa na skomplikowanie przepływu sterowania w programie. Rozbudowane warunki oraz gałęzie kodu wykonywane po ich spełnieniu lub odrzuceniu przypominają zasady programowania strukturalnego, a przede wszystkim utrudniają zrozumienie ich sensu. | |||
Pierwszym krokiem w kierunku usunięcia tego problemu jest ponownie wyłączenie fragmentów do nowych metod o intuicyjnych nazwach – w wielu przypadkach jest to rozwiązanie wystarczające. W innych można podzielić instrukcje warunkowe korzystając z mechanizmów obiektowych: polimorfizmu (każda gałąź staje się osobną implementacją tego samego interfejsu) lub dziedziczenia (każda podklasa reprezentuje jedną z gałęzi). Wówczas problem sterowania warunkami sprowadza się do tworzenia obiektów odpowiednich klas, a nie wyboru pomiędzy długimi blokami kodu. | |||
[[zpo-8-wyk-Slajd35 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd37 | Następny slajd >>]] | [[zpo-8-wyk-Slajd35 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd37 | Następny slajd >>]] |
Aktualna wersja na dzień 18:14, 4 lis 2006
Switch Statements
Niepoprawne wykorzystanie instrukcji wyboru i warunkowej w dużym stopniu wpływa na skomplikowanie przepływu sterowania w programie. Rozbudowane warunki oraz gałęzie kodu wykonywane po ich spełnieniu lub odrzuceniu przypominają zasady programowania strukturalnego, a przede wszystkim utrudniają zrozumienie ich sensu.
Pierwszym krokiem w kierunku usunięcia tego problemu jest ponownie wyłączenie fragmentów do nowych metod o intuicyjnych nazwach – w wielu przypadkach jest to rozwiązanie wystarczające. W innych można podzielić instrukcje warunkowe korzystając z mechanizmów obiektowych: polimorfizmu (każda gałąź staje się osobną implementacją tego samego interfejsu) lub dziedziczenia (każda podklasa reprezentuje jedną z gałęzi). Wówczas problem sterowania warunkami sprowadza się do tworzenia obiektów odpowiednich klas, a nie wyboru pomiędzy długimi blokami kodu.