Skip to main content

Začínáme programovat v jazyku Python (Ukázka, strana 99)

Page 1

98

Kapitola 6 Základy objektové architektury

6.8 Druhy vytvářených objektů Při rozhodování o tom, jaký druh objektu pro daný účel vytvořit, je zřejmé, že pro objekty, jichž bude více, bychom měli definovat třídu. U objektů, které se budou v celé aplikaci vyskytovat jenom v jednom exempláři, je rozhodování těžší. Obecně máme v Pythonu tři možnosti:

● Definovat objekt jako modul. Tato možnost bude asi nejjednodušší, ale na druhou stranu není vhodné mít celou aplikaci rozbitou do záplavy drobných modulů. Má proto smysl popřemýšlet, jestli by v zájmu maximální přehlednosti aplikace nebylo výhodnější sloučit několik definic „sólistů“ do jednoho modulu.

● Definovat třídu, která nebude mít žádnou instanci a bude sama oním objektem.

Tato možnost by se mohla hodit ve chvíli, kdy bychom měli takovýchto „sólistů“ více a definice každého z nich by byla relativně jednoduchá, takže by se mohlo ukázat výhodné sloučit všechny do jednoho modulu.

● Definovat pro daný objekt třídu, která bude mít jedinou instanci – daný objekt. Po této možnosti sáhneme ve chvíli, kdy bychom tuto třídu mohli začlenit do dědické hierarchie a díky tomu zdědit implementaci některých funkcionalit. Tuto možnost zde nebudu rozebírat, ale v [11] je uvedeno několik možných způsobů realizace takovéto třídy.

6.9 Dva způsoby návrhu Pro řešení složitějších úloh existují obecně dva principiální přístupy: návrh shora dolů a naopak návrh zdola nahoru. V praxi se většinou používá nějaká jejich kombinace, ale zkusím vám je nejprve představit v jejich čisté podobě.

Návrh shora dolů Návrh metodou shora dolů (anglicky top-down design) vychází z přirozeného lidského postupu při řešení složitých problémů, který je označován jako dekompozice problému (problem decomposition) a je vlastně programátorskou aplikací známé římské zásady divide et impera neboli česky rozděl a panuj. I pro nás je velice výhodné rozdělit si složitý problém nejprve na řadu dílčích podproblémů, ty vyřešit a z jejich řešení pak sestavit řešení problému původního. Pokud se nám bude zdát některý z podproblémů stále příliš složitý, není nic přirozenějšího než jej opět rozdělit. Proto bývá tento přístup někdy označován jako postupný návrh (stepwise design). Po několika úrovních postupného zjemňování problému se nakonec musíme dostat do situace, kdy jednotlivé podproblémy budou již natolik jednoduché, že naprogramovat je bude pro nás hračkou, protože stačí vhodně poskládat hotové součásti. O tomto způsobu návrhu můžeme říci, že v každém okamžiku víme, co má prvek dělat, ale zpočátku netušíme, jak to bude dělat, jaká je jeho struktura. To se ujasní až v průběhu další analýzy a následného návrhu a kódování. 65_Python_NZ_ZLOM.doc; verze 1.04.8619_2021-01-16_so_14-41

Strana 98 z 272 Ukázka elektronické knihy, UID: KOS286732


Turn static files into dynamic content formats.

Create a flipbook