ПредишенСледващото

Глава 22. Предписание програма

крайния срок. Премахване, самосвали и се оставя да се охлади, преди хранене на клиента.

Знам, че най-малко четири бисквити рецепта. Тяхната Разни% -being се определят от предпочитанията ви - дали искате торта без масло или пандишпан без яйца - и начина на приготвяне. % Програми ние са писали по същия начин. Не е рецепта или magiche% формула ТА; същата система може да бъде конструиран в различни ОД% БАМИ, всеки от които може да бъде по-добре от друг. Можете да вземете% различни съставки за процеса на развитие и различните методи. Както и да е, резултатът може да се различава леко печени сладкиши - .. На функции, структура, стабилност, да удължи% мостове, поддръжка и др Рецептите описват жизнения цикъл на софтуера. етапи на развитие от оригиналните (% заместниците седяха програма) на крайния (ИЕ).

Ние, програмистите са предвидими (и до каква степен% репродукцията% izvodimym) начин за изграждане на софтуер, след процедура, дефинирана% разделени. Ние трябва да привлече на помощ тази започне отначало% от развитие, което ще ни позволи да създадем най-доброто от правителствените програми за възможно%. В тази глава ще разгледаме някои от рецептите за създаването на програми; ние ще ги сравним, се противопоставят, да критикува и да видим какво въздействие, което оказват върху първата ни обичай код.

Добрите програмисти знаят как да програмирате - собствени методи и техники за работа.

Какво програмиране тези рецепти?

стил на програмиране се описва как планирано решение задник% чи, тя е разделена на части и се моделира на избрания език. Трябва да се създаде модел на решения, тъй като полезна система може да не е съвсем удобно в главата на разработчика. Стил програма по прехраната% ЛИЗАЦИЯ определя начина, по който се раздели на проекта върху контрола на контролиран%; Този дизайн на модела, който служи изразяването на вашите проблеми в кода.

Различни езици за програмиране съответстват на различни стилове на програмиране про%. Някои модели са съобразени с конкретния език, различен

• Процедурни езици позволяват точен набор от стъпки, които да доведат до получените резултати. Това е нещо, което повечето програмисти са свикнали.

• описателен език описани отношенията между изхода на правилата за езикови променливи (или функции), и да се получи в резултат на изпълнителната система на езика, се отнася и за тези правила е какво% от определен алгоритъм. (Това описание може да бъде по-голям% можно след погледнем функционалното и логическото програмиране skoe%.)

Изборът на език за програмиране е отчасти определя стила. (Още по-добре изберете език, който поддържа стила, който искате да използвате Хоти%). Въпреки това, изборът на език за програмиране - не най-важният. Възможно е да се напише код структуриран в обектно-ориентиран език%, както това е възможно да се напише Превърнете от% ЛИЗАЦИЯ код на всеки език. В следващите няколко секции описват популярни програмни стилове.

структурно програмиране

Този стандартен метод на процедура дизайн използва алгоритмична разлагане Xia% - процес система разделяне на части, всяка от които представлява една малка стъпка в по-голям процес. Разтворите на дизайн са насочени към контролиране на потока на Ния% и създават йерархична функционална структура. Както пише Дейкстра: "йерархични системи имат свойството, че съществително NOSTA%, смята неделима флъш, тя се разглежда като съставна обект на следващото по-ниско ниво на детайлност; в резултат на естествени гранули от време и пространство, вземете nimye% на всяко ниво, са намалени със заповед, когато ние отново% завършваме вниманието си към следващото по-ниско ниво. Ние govo% ръба на стената от гледна точка на тухли върху тухли - от гледна точка на кристал% улов на кристали - от гледна точка на молекули, и т.н. "Така Дейкстра задника% lyariziroval структурно програмиране в класическия му статия« Отиди на изявление се смята за вреден ».. (Виж операторът е вредно). (Dijkstra 68)

Структуриран програмиране - модел концентрира върху контрола и lenii% след проектирането низходящ модел. Започвате% ете с които си представим тяхното цялата програма (например, ETS lat_pokupki), а след това се разгражда в серия от под-блокове (например, да се състои vit_spisok_pokupok, vyyti_iz_doma, doyti_do_magazina, vybrat_pokupki, състезания platitsya_v_kasse, vernutsya_domoy). От друга страна, всеки под-блок се разпада на парчета, докато достигне до ниво, при което е лесно да се напише код за изпълнение. Блокира се събират в це% Loe, и че проектът е към края си.

Глава 22. Предписание програма

Структурната подход има следните последици:

• Всяка стъпка на разлагане трябва да бъде в рамките на разумен% от Ниман програмист. (Дейкстра каза: "Аз предлагам да се ограничим% проектирането и изпълнението на програми, разбира ра% увеличение.")

• Потокът на контрол трябва да бъдат наблюдавани внимателно: Избягвайте ужасен Гото оператор (неструктурирана в преход про% свободно пространство програмата) и пишат функции с един вход и оди% добив (т.нар код Сесе).

• структурен код условие циклични структури и условни оператори в рамките на функционалните блокове. Otno shenie% за първите изходи в средата на цикъла или вложените блок същото отново имейлът като Иди.

Общата структуриран език за програмиране - C, Pascal, BASIC и по-възрастните, като Fortran и COBOL. С bolshinst% уа процесуално език лесно да се напише структурен код, въпреки че това не е тяхната специалност; структурни програмисти често взимат, но% vomodnye езици, без да взема нови идиоми. 1

Booch описва GS% програмирането "метод изпълнение, в която се организират програми под формата на взаимодействащи си обекти, всеки от които представлява една инстанция е% от кой клас и класове образуват йерархична структура, Ba% ен за наследствените отношения.» (Booch 94 ) Това е и процедури% Ню Йорк стил, но това дава възможност за по-естествен начин да се моделира в реалност; насочваме вниманието ви към симулираните наред% активни субекти, а не към конкретна тема.

Този модел е до голяма степен изградена около данните (за разлика от структурирана програмиране, където центъра са protses% Si). Ние сме заинтересовани от тук житейски данни и да го преместите, вместо поредица от действия, които да се извърши повторно% шиене задача. Имате обекти (данни) е поведението (това, че правят нещо%) и държавата (която варира в резултат на действие). На ниво език, тя се изпълнява в метод клас обекти. %% OO програми ние считат за комплекти от сътрудничи софтуерни компоненти, а не монолитни списъци процесора команди. % OO дизайн ни позволи ефективно да симулира големи системи.

В обектно-ориентираното програмиране прилага %% издухване следва концепцията за компютърни науки:

1 Това не е непременно лошо, ако програмистът не мисля, че е излязъл извън границите на структурно кодиране, без да променя своя път към развитието на код.

Въведение Дейкстра йерархия (препраща към нея и я прочетете отново) отвори определен вид абстракция.

Капсуловане наречен помещения свързани един с друг UC% Suppl блокове в единична опаковка, които могат да бъдат достъпни само чрез добре дефинирана API: капсула за кода. Потребителят на Teli% от капсулите могат да се прилагат само за конкретна API, но нямат пряк достъп до вътрешното състояние. Това осигурява ясно разделение на отговорностите позволява спекулира по метафизични въпроси като "Какво е обект? "И това дава известна увереност, че никой нападател няма да бъде в състояние да се бръкнат по-дълбоко в кода си, когато се отвърне.

Това е механизъм за създаване на обекти е специална версия на родителя. Нека типа родител се нарича фигура, и Nasli% удар за него квадрат, кръг и триъгълник. Наследниците имат де% за основно и специализирано поведение (например, те знаят колко страни на фигурата),. Както и при никакви идеи в програмирането, наследство може да бъде основа за създаването на неясни и странни програми, и може да се прилага в логически правилния ном%, елегантен код. Добри OO% програмисти са в състояние да се създаде ефективен наследствената йерархия.

Този имот позволява един и същ код за работа с данните% E на различни видове (PO% кои езици обикновено се наричат ​​клас Е%) от контекста, в който се изпълнява кода. Това Technolen% Gia подчертава програмиране според изрично дефинирано институт terfeysam%, а не имплицитно внедрявания - полиморфизъм осигурява ясно разделение на задълженията, когато пишете код. Полиморфизъм е от два вида: динамични и статични.

Динамичен полиморфизъм в съответствие с името си определя действителната работа по време на работа - в зависимост% позиция от вида на операнд или целевия обект. Често се използва UC% наследяване йерархия: клиент използвате тип фигура, в конкретния случай може да работи с обекти като Quad плъх или триъгълник, както е определено по време на изпълнение.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!