Модульное программирование
Ìîäóëüíîñòü — ôóíäaìåíòaëüíûñ añïånò âñåõ óñïåøíî ðaáîòaþùèõ nðóïíûõ ñèñòåì.
Á. Còðaóñòðóï
C óâåëè÷åíèåì îáúåìa ïðîãðaììû ñòaíîâèòñя íåâîçìîæíûì óäåðæèâaòü â ïa- ìяòè âñå äåòaëè. Åñòåñòâåííûì ñïîñîáîì áîðüáû ñî ñëîæíîñòüþ ëþáîé çaäa÷è яâëяåòñя åå ðaçáèåíèå ía ÷añòè.  C++ çaäa÷a ìîæåò áûòü ðaçäåëåía ía áîëåå ïðîñòûå è îáîçðèìûå ñ ïîìîùüþ ôóínöèñ, ïîñëå ÷åãî ïðîãðaììó ìîæíî ðaññìaò- ðèâaòü â áîëåå óêðóïíåííîì âèäå — ía óðîâíå âçaèìîäåéñòâèя ôóíêöèé. Ýòî âaæíî, ïîñêîëüêó ÷åëîâåê ñïîñîáåí ïîìíèòü îãðaíè÷åííîå êîëè÷åñòâî ôaêòîâ. Èñïîëüçîâaíèå ôóíêöèé яâëяåòñя ïåðâûì øaãîì ê ïîâûøåíèþ ñòåïåíè aáñòðaê- öèè ïðîãðaììû è âåäåò ê óïðîùåíèþ åå ñòðóêòóðû.
Ðaçäåëåíèå ïðîãðaììû ía ôóíêöèè ïîçâîëяåò òaêæå èçáåæaòü èçáûòî÷íîñòè êî- äa, ïîñêîëüêó ôóíêöèþ çaïèñûâaþò îäèí ðaç, a âûçûâaòü åå ía âûïîëíåíèå ìîæ- íî ìíîãîêðaòíî èç ðaçíûõ òî÷åê ïðîãðaììû. Ïðîöåññ îòëaäêè ïðîãðaììû, ñîäåð- æaùåé ôóíêöèè, ìîæíî ëó÷øå ñòðóêòóðèðîâaòü. ×añòî èñïîëüçóåìûå ôóíêöèè ìîæíî ïîìåùaòü â áèáëèîòåêè. Òaêèì îáðaçîì ñîçäaþòñя áîëåå ïðîñòûå â îòëaä- êå è ñîïðîâîæäåíèè ïðîãðaììû.
Cëåäóþùèì øaãîì â ïîâûøåíèè óðîâíя aáñòðaêöèè ïðîãðaììû яâëяåòñя ãðóï- ïèðîâêa ôóíêöèé è ñâяçaííûõ ñ íèìè äaííûõ â îòäåëüíûå ôaéëû (ìîäóëè), êîì- ïèëèðóåìûå ðaçäåëüíî. Ïîëó÷èâøèåñя â ðåçóëüòaòå êîìïèëяöèè îáúåêòíûå ìîäóëè îáúåäèíяþòñя â èñïîëíяåìóþ ïðîãðaììó ñ ïîìîùüþ êîìïîíîâùèêa. Ðaçáèåíèå ía ìîäóëè óìåíüøaåò âðåìя ïåðåêîìïèëяöèè è îáëåã÷aåò ïðîöåññ îò- ëaäêè, ñêðûâaя íåñóùåñòâåííûå äåòaëè ça èíòåðôåéñîì ìîäóëя è ïîçâîëяя îòëa- æèâaòü ïðîãðaììó ïî ÷añòяì (èëè ðaçíûìè ïðîãðaììèñòaìè).
Ìîäóëü ñîäåðæèò äaííûå è ôóíêöèè èõ îáðaáîòêè. Äðóãèì ìîäóëяì íåæåëa- òåëüíî èìåòü ñîáñòâåííûå ñðåäñòâa îáðaáîòêè ýòèõ äaííûõ, îíè äîëæíû ïîëüçî- âaòüñя äëя ýòîãî ôóíêöèяìè ïåðâîãî ìîäóëя. Äëя òîãî ÷òîáû èñïîëüçîâaòü ìî- äóëü, íóæíî çíaòü òîëüêî åãî èíòåðôåéñ, a íå âñå äåòaëè åãî ðåaëèçaöèè. ×åì
áîëåå íåçaâèñèìû ìîäóëè, òåì ëåã÷å îòëaæèâaòü ïðîãðaììó. Ýòî óìåíüøaåò îá- ùèé îáúåì èíôîðìaöèè, êîòîðóþ íåîáõîäèìî îäíîâðåìåííî ïîìíèòü ïðè îòëaä- êå. Ðaçäåëåíèå ïðîãðaììû ía ìaêñèìaëüíî îáîñîáëåííûå ÷añòè яâëяåòñя ñëîæ- íîé çaäa÷åé, êîòîðaя äîëæía ðåøaòüñя ía ýòaïå ïðîåêòèðîâaíèя ïðîãðaììû.
Ñnðûòèå äåòaëåñ ðåaëèçaöèè íaçûâaåòñя èínaïñóëяöèåñ. Èíêaïñóëяöèя яâëяåò- ñя êëþ÷åâîé èäååé êaê ñòðóêòóðíîãî, òaê è îáúåêòíî-îðèåíòèðîâaííîãî ïðîãðaì- ìèðîâaíèя. Ïðèìåð èíêaïñóëяöèè — ïîìåùåíèå ôðaãìåíòa êîäa â ôóíêöèþ è ïåðåäa÷a âñåõ íåîáõîäèìûõ åé äaííûõ â êa÷åñòâå ïaðaìåòðîâ. ×òîáû èñïîëüçî- âaòü òaêóþ ôóíêöèþ, òðåáóåòñя çíaòü òîëüêî åå èíòåðôåéñ, îïðåäåëяåìûé çaãî- ëîâêîì (èìя, òèï âîçâðaùaåìîãî çía÷åíèя è òèïû ïaðaìåòðîâ). Èíòåðôåññîì ìîäóëя яâëяþòñя çaãîëîâêè âñåõ ôóíêöèé è îïèñaíèя äîñòóïíûõ èçâíå òèïîâ, ïåðåìåííûõ è êîíñòaíò. Îïèñaíèя ãëîáaëüíûõ ïðîãðaììíûõ îáúåêòîâ âî âñåõ ìîäóëяõ ïðîãðaììû äîëæíû áûòü ñîãëañîâaíû.
Ìîäóëüíîñòü â яçûêå C++ ïîääåðæèâaåòñя ñ ïîìîùüþ äèðåêòèâ ïðåïðîöåññîða, ïðîñòðaíñòâ èìåí, êëaññîâ ïaìяòè, èñêëþ÷åíèé è ðaçäåëüíîé êîìïèëяöèè (ñòðî- ãî ãîâîðя, ðaçäåëüíaя êîìïèëяöèя íå яâëяåòñя ýëåìåíòîì яçûêa, a îòíîñèòñя ê åãî ðåaëèçaöèè).
Do'stlaringiz bilan baham: |