Характеризира се обектно-ориентиран програмиран спад. Обектно-ориентирано програмиране (ООП). Принципът на релаксация на ООП и подклас

Здравейте всички.

Седмица на статии в уебсайта, посветен на OVP. Останалата част от историята събуди много емоции в мен и, за съжаление, още по-гнили емоции. Вече не бях достоен за статус. Защо? Защото предава всякакви негативни емоции и допринася за развитието на ORP. Емоциите са лишени от факта, че хората не разбират напълно цялата сила на ORP и искат да поемат всички от факта, че ORP е зло. Най-лошото е, че хората започват да слушат и да изхвърлят алчни доказателства, че не смятат, че се случва нещо полезно. Мисля, че такава статистика е по-противопоказна за студентите, отколкото бих дал преди. :)

Да видим.

Какво е ORP? OOP - това и GO програмиране и дизайн. Едно без друго, дреболия повече от всичко друго. Създаден ORP за проектиране/програмиране на софтуерни продукти. Това не е за процеси на моделиране. Не за проектиране на протоколи, а за софтуерни продукти и тяхното внедряване. За да опростите системата, как да внедрите протокола и бизнес процеса точно сега.

Ако започнете да използвате ООП, първото нещо, което трябва да направите, е да започнете да използвате обекта на мисълта. След като вече казах, че най-големият проблем е ОВП, още по-трудно е да се научиш да мислиш обективно. И е много важно да прочетете процеса на якомага преди (GoF с аналогии на типа място, конструктор, фасада също ще помогне в това). С обектния дизайн на Vikorist можете лесно да проектирате сгъваеми системи. С обекта на мисълта на Vikorist можете лесно да проектирате какъвто и да е дизайн (важно е дизайнът/програмирането да е един и същ, тъй като по принцип е възможно да се проектира абсолютно -yaku) работа с обекти и взаимодействие между тях. Tobto. ООП без обективна мисъл няма да ви позволи да започнете да използвате пълната мощ на ООП.

Да отидем по-нататък. Така че за нас е важно да мислим обективно, за да знаем абстракциите на обектите, от които се нуждаем, за да постигнем целите си. След като аналогиите и абстракциите бъдат премахнати, сега имаме по-ясна картина, която ни позволява бързо да разберем какво има в системата. И тук започваме да мислим за наследството и полиморфизма. Тези два инструмента са необходими за ръчно мащабиране на системата без дублиране на кода. Но силата на тези механизми се дължи на степента, до която сте придобили абстракции и аналогии. Ако вашият предметен манталитет не ви позволява да формулирате ръчно разлагане на обекти, тогава гниенето и полиморфизмът няма да ви помогнат. Tobto. Разпадът и полиморфизмът не са нищо повече от инструменти, които решават проблема с мащабирането на системата.

Как работят тези инструменти? По-просто е от задушената ряпа, защото всичко се основава на речите, които са ни познати. Обичам прости примери от живота:

1. Спадкуване. Аз съм пекар. И на ток и на газ. Вашата работа е да моделирате процеса на приготвяне на сиренето като пекарна във фурна с кожа. Най-важното е, че ще имаме много дублиране на код поради факта, че процесът на прехвърлянето му към фурната и работата на самата фурна са идентични и за двете фурни. Ако включим обекта на мисълта и си спомним за инструмента за намаляване, тогава ще го премахнем приблизително в началото (диаграмата е твърде малка, съжалявам):
Є pіch (абстрактно pіch). Има поведение - включване, включване, увеличаване и промяна на температурата, поставяне на какво, какво и какво - температура във фурната, включване и изключване. Това е важно приложение на абстрактен обект в някакво отношение към принципите на капсулиране (когато ги прилагам, трябва да се придържам към тях). Аз съм хлебар, специфичен хлебар Иван. Вин знае как да работи с абстрактен език. Tobto. Проверете температурата, включете нагревателя и т.н. опомнил си се. Силата на успокоението се крие във факта, че няма да имаме възможност да пренапишем нашия Иван за кожни пещи, било то електрически или газови. Мисля, че на всички е ясно защо? Оказва се, че инструментът за остосиране е правилен.
2. Полиморфизъм. Дори фурните работят по различни начини. Газът изгаря газ, електричеството изгаря електричество. Vikorist и полиморфизъм, ние лесно променяме поведението в компакторите на абстрактната фурна.
3. Капсулиране. Основното предимство на капсулирането е, че не е нужно да знам какво се случва в средата на моята фурна. Да кажем, че не щраквам върху метода за включване на печката, а върху промяната на мощността, която се включва на стойност true. Какво ще се случи с нея в този момент? Като принцип на капсулиране на непреговорите, тогава ще ви кажа да започнете да живеете в спалнята, т.к. Аз ще ти кажа. Tobto. Пекарят знае какво прави пекарят в спалнята, той знае как работи пекарят. Или, например, не можем да настроим температурата на фурната по-ниска или по-висока по всяко време. Ако не се придържаме към принципа на капсулиране, тогава трябва да кажем на фурната да провери температурата, така че какво е това? Tobto. Пекарят вече знае много за фурните. Getters и setters са функции, които ще ни помогнат лесно да внедряваме промени. Това е. Тъй като хетера и сетер са празни, това означава, че това се изисква в моята равна абстракция. Getters и setters не могат да повлияят на прилагането на капсулиране; дизайнер/програмист може да внедри капсулиране неправилно.

В чието приложение избраната абстракция е добра. Всеки си гледа работата, и трите стълба на ООП дават всичко от себе си. Ale varto избирам мръсната абстракция, тъй като започва истинският проблем. И ето стандартите за разграничение, които ще ви помогнат да разберете дали сте избрали правилните абстракции и дали вашето разлагане е правилно в посоката, в която вървите (SOLID).

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

Вече ми казаха за писането. Вдясно няма ежедневни проблеми за човека, с когото работите по време на рецесията. Точно както на сегашното ниво на абстракция е важно да използвате сюжета, не е важно да го правите. Ще спреш ли да печеш? Създавате ли мечтите си? Това е... Защо ти пука, че тази динамична типизация не ме разбира. Искахте ли да печете? Вземи го. Имате ли нужда от електричество? Е, вижте, вече няма да получавате бензин.

Други фасове, които са вкарани в статистиката, която ми е възложена, без фасовете на подходяща абстракция и аналогия в рамките на възложената задача. Спек.

Okremo за DTO. DTO – верижен модел. Тя ви позволява да създадете обект, който може да прехвърля информация към друга топка, друга система, накратко, къде да я прехвърлите. Защо не мога да гледам на него като на обект, стана мистерия за мен. Къде е суперценността? Какво има в контейнера? И какво?? Този обект е в рамките на обектния модел, който разгледах на дадено ниво на абстракция, където DTO е обект и част от декомпозицията.

Също така не е ясно какво да кажем за езика. Мога да проектирам софтуер, софтуер и обектно-базиран подход, независимо от езика. Ако не имплементира основните инструменти за работа с обекти, би било трудно или невъзможно да се внедри създадената от мен система.

Изглежда също, че действията на речта не могат да бъдат открити от външния вид на обектите и техните взаимоотношения. Чудя се какво не е наред. Просто трябва да изберете правилната абстракция. Независимо дали става въпрос за внедряване на протокол, топка за достъп до база данни, свързващи плъгини, мениджър на задачи, бизнес процес, система за проектиране на бизнес процеси и т.н. всичко, което може лесно да се идентифицира като обект и взаимното им взаимодействие. Всичко може да се реализира като обекти и взаимодействието между тях. Доброто и лошото най-често са извън обсега на ума ви, за да мислите обективно.

В обобщение. Ако не разбирате силата на ORP, тогава, след като сте видели всичко, трябва да развиете обективен ум.

P.S. В коментарите преди последната статия явно прекалих с бруталността на реални хора. пак ще питам

Защо обектно-ориентираното програмиране превъзхожда повечето проекти? OOP предлага ефективен начин за борба с тази сложност. Вместо да разглежда програмата като последователност от писмени инструкции, тя представлява група от обекти със специални правомощия и извършва действия с тях. Това е за създаване на по-ясни, надеждни и лесни за следване допълнения.

Основните принципи са формирани поради факта, че в други подходи имаше различия. Сред тях е липсата на достъп до данни и големият брой връзки, които налагат ограничения върху извършването на промени. Тяхното осъзнаване на тези причини е важно, за да разберат, че ORP има такива предимства като програмирани.

Процедурни филми

C, Pascal, FORTRAN и подобни езици са процедурни. Това е мястото, където операторът инструктира компютъра да направи това, което прави: премахване на данни, добавяне на числа, деление на шест, показване на резултата. Моето процедурно допълнение е списък с инструкции. Тъй като е малък, няма нужда от друг организационен принцип (често наричан парадигма). Програмистът създава списък с инструкции и компютърът ги записва.

Подлежи на функция

Тъй като програмите стават по-големи, списъкът става тромав. Малко хора могат да разберат повече от стотици инструкции, без да бъдат групирани заедно. Поради тази причина функцията се превърна в начин да направим програмите по-интелигентни за техните създатели. На други езици същата концепция може да се нарича подпрограми или процедури.

Програмата е разделена на функции, всяка от които има ясно обозначен интерфейс.

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

Фокусът върху функциите и модулите е един от външните камъни на структурното програмиране, което беше парадигмата преди желязото за няколко десетилетия преди появата на ORP.

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

Фрагментите от програми станаха по-големи и структурното програмиране започна да се сблъсква с трудности. Проектите станаха по-сгъваеми. Графиците се сриваха. Включиха се още програмисти. Сгъваемостта се увеличи. Разходите се увеличиха, графикът се срина и започна сривът.

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

Какви са причините за тези проблеми, свързани с процедурния език? На първо място, функциите може да нямат достъп до глобални данни. С други думи, процедурите и ценностите не са взаимосвързани и лошо моделират реалния свят.

За да разгледаме тези проблеми в контекста на програма за инвентаризация, един от най-важните глобални елементи на данните е съвкупността от единици за инвентаризация. Към тях могат да бъдат разширени различни функции за въвеждане на нова стойност, показване, промяна и т.н.

Неограничен достъп

Една програма, написана например на C, има два типа данни. Местните повиквания в средата на функцията и други процедури не са засегнати.

Ако две или повече функции са отговорни за отказ на достъп до едни и същи данни, останалите може да са глобални. Такива са например информацията за предмети, които трябва да бъдат застраховани. Глобалните данни могат да бъдат достъпни за всяка процедура.

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

Такъв голям брой връзки изисква редица трудности. На първо място, това прави структурата на програмата по-сложна. С други думи, това прави по-трудно извършването на промени. Промяната на глобалния елемент от данни може да промени всички функции, които имат достъп до него.

Например, програмата иска да вярва, че кодът на застрахования артикул трябва да се състои не от 5 цифри, а от 12. Ето защо трябва да промените от кратък на дълъг. Сега функциите, свързани с кода, могат да бъдат променени, за да работят с новия формат.

Когато елементите се променят в голяма програма, важно е да се каже кои процедури имат достъп до тях. Въпреки това, както разбирате, тази промяна може да доведе до неправилна обработка на други глобални данни. Всичко е свързано заедно, така че промяната на едно място ще доведе до друго.

Моделиране на реалния свят

Другият е най-важният проблем на процедурната парадигма и тези, които тя има общо с обработката на данни и функцията на лошо моделиране на речта в света. Тук можем да се занимаваме с такива обекти като хора и коли. Миризмите не си приличат нито като данни, нито като функция. Сложните реални обекти имат атрибути и поведение.

Атрибути

Примери за атрибути (понякога наричани характеристики) за хората са цветът на очите и името на седалката, за автомобилите - дебелината и броя на вратите. Както се оказа, атрибутите на реалния свят са еквивалентни на тези на програмата. Вонята има специфични значения, като синьо (цвят на очите) или брой врати.

Поединка

Поведение - тези, които обектите на реалния свят се страхуват от всякакво нахлуване. Ако попитате шефа си за увеличение на заплатите, отговорът ще бъде същият. Когато натиснеш покрива, колата започва да се клати. Вимова зъб и задници на поведението. Поведението е подобно преди процедурата: обаждат се да направят това, а след това да направят това. Следователно тези функции не моделират ефективно обекти от реалния свят.

разрешаване на проблема

Един обект в ООП е представен като колекция от данни и функция. Само процедури, наречени членски функции на C++, ви позволяват да премахнете стойност. Данните са получени и откраднати от промяна. Стойностите и функциите са капсулирани в едно цяло. Капсулирането и съхранението са основните термини в описанието на GOM.

Ако трябва да промените данните, ясно е кои функции взаимодействат с тях. Никоя друга процедура не може да откаже достъп до тях. Това ще улесни писането, подобряването и поддръжката на програмите.

Добавянето се състои от няколко обекта, които взаимодействат един с един, включително членски функции.

Днес най-широко използваното програмиране е C++ (плюс-плюс). Java има различни функции, като дисплеи, шаблони и множество комбинации, които я правят по-малко трудна и универсална от C++. C# все още е в обсега на популярността на C++.

Обърнете внимание, че тези членски функции на C++ се наричат ​​методи в много други GO, като Smalltalk. Тези елементи се наричат ​​атрибути. Кликнете върху обектния метод за известяване.

Аналогия

Можете да идентифицирате обектите на подразделенията на компанията. В повечето организации военният персонал не работи един ден като член на персонала, поради заплатата си, а след това прекарва остатъка от деня в търговия на дребно. Важно е да се гарантира, че целият му персонал е внимателно поставен на своите връзки. Това са последните данни: показатели за заплати, продажби, профили на заетост и др. Хората в отделите работят със собствена информация. Разделянето на компанията по този начин улеснява контрола върху дейността й и запазва целостта на данните. Счетоводството потвърждава, че ако трябва да знаете общия размер на заплатите, които се изплащат на настоящото ви семейство, не е необходимо да се ровите в архивите. Всичко, което трябва да направите, е да изпратите бележка до доверено лице, да проверите, докато това лице има достъп до данните и да намерите потвърждение на необходимата информация. Това гарантира спазване на разпоредбите и липса на доставка от трета страна. Така че самият обект в PLO ще осигури организацията на отчета.

Важно е да запомните, че ориентацията към обекта не е ограничена от детайлите на роботизираната програма. Повечето изрази на C++ са подобни на изразите на процедурни изрази като C. Всъщност функциите-членове на C++ са доста подобни на тези в C. Само по-широкият контекст позволява да се установи какво е или не един процедурен оператор.

Обект в OOP: значение

При разглеждане на програмирането по подразбиране на GO-mov, замяна на захранването с други функции, има проблем с връзката с обектите. OOP дизайнът значително опростява разработката на добавки. Това се дължи на приликата между софтуера и реалните обекти.

Какви речи стават обекти в OVP? По-долу са типичните категории.

Физическият обект в ORP е:

  • транспорт в модели ruhu flow;
  • електрически елементи в програми за проектиране на схеми;
  • ръбове на икономическия модел;
  • Такъв е и случаят със системата за контрол на вятъра.

Елементи на ядрото на компютъра ползвател:

  • меню;
  • викна;
  • графики (линейни, правоъгълни, цветни);
  • клавиатура, мишка, принтер, дискови устройства.
  • работници;
  • студенти;
  • клиенти;
  • Продавачи.
  • външен вид на книгата;
  • специален офицер вдясно;
  • речник;
  • таблица с географски ширини и дължини на населените места.

Връзката между обекти в реалния свят и ORP стана резултат от комбинираните функции и данни: смрадите създадоха революция в програмирането. Няма такова сходство в процедурните езици.

Клас

Обектите в OVP са членове на класове. Какво означава това? Вашите програми могат да имат интегрирани типове данни. Типът int е цяло число в C++. Можете да обявите колко промени могат да бъдат направени всяка година.

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

Класът в OVP е описание на много подобни обекти. Принц, Стинг и Мадона със спивакс. Няма много хора с такива имена, но хората могат да се наричат ​​така, защото имат сходни характеристики. Един OOP обект е екземпляр на клас.

успокояване

Живите класове са разделени на подкласове. Например, съществата са разделени на земноводни, птици, птици, коми и др.

Принципът на този вид подклас се крие във факта, че класът кожа има различни характеристики от класа, който е подобен един на друг. Всички коли си мият джантите и двигателите. Това са първоначалните характеристики на транспортните съоръжения. В допълнение към уникалните характеристики на кожата, подкласът има свои собствени особености. Автобусите имат достатъчно място, а микробусите имат място за транспортиране на важни предмети.

По същия начин базов клас може да стане баща на много подобни подкласове, които могат да бъдат дефинирани по такъв начин, че да отделят неговите характеристики от тези, добавени от властите. Намаляването му до функция ще опрости процедурната програма. Ако трябва да разбиете няколко части от кода едновременно, можете да извлечете скритите елементи и да ги поставите в една процедура. Три програми могат да използват функцията, за да отменят своите дейности, или могат да отменят собствените си операции. Подобно е на този основен клас за отмъщение за данни, скрити за група скитници. Подобно на редукционната функция, тя съкращава програмата GO и изяснява взаимовръзките на нейните елементи.

Многократно използване

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

В ORP спадът е разширена идея за богата времева використика. За този клас, без да го променяте, можете да създадете нов с допълнителни функции. Лесното повторно внедряване на оригиналния PP е важно предимство на OOP. Важно е, че това ще осигури увеличаване на доходността от първоначалните инвестиции.

Създаване на нови типове данни

Обектите са удобни за създаване на нови типове данни. Да приемем, че програмата има двуизмерни стойности (например координати или географска ширина и дължина) и трябва да се справи с тях с помощта на аритметични операции:

позиция1 = позиция + начало,

de і origin – двойки независими числени стойности. Създаването на клас, който включва две значения, и унищожаването на неговите променливи обекти създава нов тип данни.

Полиморфизъм, трансформация

Операторите = (равно) и + (плюс), които се възползват от позиционната аритметика, не работят по същия начин, както с производни типове като int. Позиционните обекти не се присвояват, а се задават софтуерно. Как тези оператори знаят как да се справят с тях? Доказателството е, че могат да им се дадат нови модели на поведение. Тези операции ще бъдат функции-членове на класа Position.

Вариацията на операторите и процедурите в зависимост от това с какво работят се нарича полиморфизъм. Ако основен оператор като + или = премахне възможността за работа с нов тип данни, изглежда, че няма повторно внедряване. Преосмислянето на ООП е вид полиморфизъм. Вона яде този важен ориз.

Книгата за ORP „Обектно-ориентирано програмиране за манекени“ ще позволи на всеки, който иска да се запознае с тази тема на доклада.

Основни принципи и етапи на обектно-ориентирания

програмиране

В теорията на програмирането ООП се дефинира като технология за създаване на сложен софтуер, който се основава на дадени програми под формата на набор от обекти, всеки с екземпляр от един тип (клас), и класове, които създават йерархия h

упадък на властта.

Взаимодействието на програмните обекти в такава система се осъществява чрез метода на прехвърляне.

Забележка.Подобно проявление на програми за първи път се появи в симулацията на сгъваеми системи Simula, която се появи още през 60-те години.

Естествен начин моделирането ни да бъде представено от програми, привлекли разработките в друго специализирано моделиране - Smalltalk (70-те), а след това

Страна 2 от 51

Основни засади на ООП

Рецензии за нови версии на универсални езици за програмиране, като Pascal, C++,

Основното предимство на ORP- съкращаване на броя на междумодулните разговори и промяна на количеството информация, предавана между модулите,

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

което дава възможност за практически независима дисекция на различни части

(обективна) програма.

В допълнение, обективният подход насърчава нови методи за технологично развитие, като напр спад, полиморфизъм, състав, повърхност,

което ви позволява по-лесно да проектирате сгъваеми предмети. В резултат на това индикаторът за повторна корекция на кодове значително се увеличава,

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

Основният недостатък на OOP е възможността за намаляване на скоростния код с допълнителна сгъваема организация на софтуерната система.

ООП се основава на следните принципи: абстракция,

споделяне на достъп, модулност, йерархия, типизация, паралелизъм,

издръжливост.

Нека да разгледаме какъв е принципът на кожата.

А б с т р а г и р о в а н и- процесът на виждане на абстракция в обективно поле. Абстракцията е съвкупността от реални характеристики на даден обект, които го отличават от други видове обекти и,

по този начин особеностите на даден обект са ясно идентифицирани от допълнителен поглед и анализ. Очевидно е, че абстракцията на реалния обект трябва да остане под формата на неразгадана задача: в един случай ние определяме формата на обекта, в друг начин, в

към третата - материалите, от които е била разделена, към четвъртата - законът на разрухата

Страна 3 от 51

Основни засади на ООП

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

Ето как обозначаваме поведението му) в една програмна единица

абстрактен тип (клас).

Ограничения за достъп- включването на различни елементи от изпълнението на абстракцията, което не намалява съществените характеристики на цялото.

Необходимостта от взаимно свързване на достъпа води до разделянето на две части от описанието на абстракцията:

интерфейс - съвкупността от налични елементи на повикване на изпълнението на абстракция (основните характеристики на поведението);

изпълнение - набор от недостъпни елементи на изпълнението на абстракция (вътрешна организация на абстракцията и механизми на поведение).

Размяната на достъп до OOP позволява на разработчика да:

Конструирайте дизайна на системата стъпка по стъпка, без да се фокусирате върху конкретното изпълнение на абстракцията, която се разработва;

Лесно е да се модифицира изпълнението на определени обекти, които, ако са правилно организирани, биха изисквали промяна на други обекти.

Обединяването на всички правомощия на даден обект (което ще стане неговото поведение) в една абстракция и ограничаването на достъпа до изпълнението на тези правомощия се нарича капсулиране.

M o d u l n o s t- принципът на разработване на софтуерната система,

който предава изпълнението под формата на отделни части (модули). При разлагане на системата на модул е ​​важно да се комбинират логически свързани части, така че броят на външните връзки между модулите да може безопасно да се съкрати. Принципът на упадъка

Страна 4 от 51

Основни засади на ООП

модулно програмиране, следвайки това ще опрости дизайна и

разработване на софтуер

Йерархия - класирана или подредена система от абстракции.

Принципът на йерархията се предава в цялата история на йерархията на развитие на софтуерните системи.

Има два вида йерархия в ООП.

Йерархия „цяло/част“- Показва, че са включени определени абстракции

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

Йерархия „зад кулисите/частно“- показва, че тази абстракция се допълва от друга абстракция, например „обща таблица -

специфичен тип маса“ и „масите са специфичен тип мебели“. Vikorist при

разширяване на структурата на класовете, ако сложните класове ще се основават на по-прости чрез добавяне на нови характеристики към тях и, евентуално, изясняване на съществуващите.

Един от най-важните механизми на OVP е упадъкът на властта в тайната/частната йерархия. Кондензацията също е връзка между абстракции, ако една от тях е структурна или функционална част от друга или няколко други абстракции (както прости, така и множествени)

релаксация).

T i p i z a s i i - обмяната, която се налага върху силата на предметите и

което пресича взаимозаменяемостта на абстракцията от различни видове (или възможността за такава замяна е много силна). В езици със строга типизация на програмния обект на кожата (промяна, подпрограми, параметър и т.н.)

човек е шокиран от вида, който означава неинвазивна операция на

Страна 5 z 51

Основни засади на ООП

като отделен софтуерен обект. Гореспоменатото програмиране, базирано на Pascal, е vikoryst, а базирано на C -

среден етап на типизация.

Следването на принципа на писане ще гарантира:

ранно откриване на грешки, свързани с неприемливи операции върху програмни обекти (счупванията се откриват на етапа на компилация на програмата, преди да се провери допустимостта на всяка операция върху софтуерен обект);

опростена документация;

Възможност за генериране на ефективен код.

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

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

Има цял низш ред, най-важният от които е незабавното приключване на определени последователности от действия. До такива дни напред,

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

Реален паралелизъм се постига при изпълнение на задача от този тип на многопроцесорни системи, ако е възможно да се контролира процесът на кожата със същия процесор. Системите с един процесор имат паралелизъм за споделяне на половин час от процесора между изпълняващи различни процеси. Зависи от вида на избраната операционна система (единична или многопрограмна)

Страна 6 z 51

Основни засади на ООП

Около час можем да завършим със система, която се разпада (както в

MS DOS) или собствена операционна система (като Windows системи).

U s h i s t- силата на абстракция възниква независимо от процеса, който поражда даден софтуерен обект, и/или от пространството, което се движи от адресното пространство към какъв тип творение.

Разделям:

∙ базирани на времето обекти, които записват междинни резултати от действия, например изчисление;

∙ локални обекти, които съществуват в средата на подпрограмите, часът на техния живот се изчислява от отговора на подпрограмата до нейното завършване;

∙ глобални обекти, очевидно програмата все още е очарована от мистерията;

∙ обекти, които се записват, данните от които се записват във файлове на външна памет между сесиите на компютърната програма.

Всички принципи са дефинирани по същия начин, както са имплементирани в различни версии на обектно-ориентирани компютри.

Обектно-ориентирано програмиране. Езикът е важен обектно-ориентиран,Както и при новото изпълнение, се изпълняват първите принципи от седемте принципа, обсъдени по-горе.

Обектните модели на Delphi и C++Builder са особено популярни. Тези модели са актуализирани с OOP за MS DOS и включват някои нови функции,

за осигуряване на ефективно създаване на системи за сгъване. Въз основа на тези модели са създадени визуални среди за разработване на Windows програми.

Лесното програмиране под Windows стана очевидно

намаляване на разходите за създаване на специални библиотеки от обекти, които „съхраняват“ много елементи от технологията за програмиране.

Страна 7 z 51

Основни засади на ООП

Етапи на развитие на софтуерни системи от wiki-базирано ООП.

Процесът на разработване на софтуер с ORP данни включва няколко етапа: анализ, проектиране, еволюция, модификация.

Нека да разгледаме етапите.

A na liz. Мета-анализ - най-пълното описание на растението. На този етап завършва анализът на предметната област на данните, разграждането на обекта на системата, която е разбита, и се идентифицират най-важните характеристики на поведението на обектите (описание на абстракцията). След резултатите от анализа структурната диаграма на софтуерния продукт е разбита, показвайки основните обекти и информацията, която се предава между тях, и също така завършва с описание на абстракцията.

Дизайн. Разделям:

по-логичен дизайн,Всеки път, когато се взема решение, практично е да не се лъже в съзнанието на операцията (операционна система и оборудване);

физически дизайн,Който е карал братята си да почитат назначени служители.

По-логичен дизайнсе крие в развитието на структурата на класовете:

Идентифицирани са полета за съхраняване на складови обекти и алгоритми на методи и са внедрени аспекти на поведението на обектите. В този случай ние гледаме нещата, които гледаме, и приемаме разделението на класовете (намаляване,

състав, повърхност, полиморфизъм и др.). Резултатът е йерархия или класова диаграма, която отразява взаимовръзките на класовете и описание на класовете.

Физически дизайнвключва комбинация от описания на класове за модула, избор на техните схеми на свързване (статично или динамично оформление), избор на методи за взаимодействие с оборудването,

операционна система и/или друг софтуер (напр.

бази данни, програми за кантиране), осигуряване на синхронизация на процесите за системи за паралелна обработка и др.

Страна 8 z 51

Основни засади на ООП

Развивам се с тези.Това е процес на поетапно изпълнение и

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

работещ прототип на предстоящата система. Тестван е и подобряван.

Например, такъв прототип може да бъде система, която включва внедряване на основния интерфейс на софтуерен продукт (прехвърляне за информиране на деня, че част от системата не е финализирана). В резултат на това избираме прототип за продукта, който може да бъде посочен например за изясняване. След това към системата се свързва група класове, например свързани с изпълнението на елемента от главното меню.

Алтернативният вариант също се тества и подобрява и така докато се реализират всички възможности на системата.

Това поетапно внедряване значително опростява тестването и разработката на софтуерния продукт.

Модификация. Това е процес на добавяне на нови функционални възможности и промяна на основните правомощия на системата. Като правило,

Промените завършват изпълнението на класа, напускайки без промяна на интерфейса му, така че ORP на vicoristan може да бъде избегнат без никакви специални неудобства, тъй като процесът на промяна включва локалната област.

Промяната на интерфейса също не е трудна задача, в противен случай това решение може да наложи подобряване на процесите за взаимодействие на обекти, които изискват промени в други класове програми. Въпреки това, съкращаването на редица параметри в интерфейсната част в съответствие с модулното програмиране значително опростява този процес.

Простотата на модификация прави възможно лесното адаптиране на софтуерните системи към умовете на работа, което се променя, тъй като повече часове от живота на системите се изразходват за разработването на които се изразходват много време и материални ресурси.

Страна 9 z 51

Основни засади на ООП

Особеностите на ООП и тези, че един обект или група от обекти могат да бъдат отделени поотделно, а проектирането им също може да се извършва на различни етапи. Например интерфейсните класове вече са внедрени, но структурата на домейн класовете все още се уточнява.

Дизайнът започва, когато всеки фрагмент от предметната област е напълно описан в процеса на анализ.

Погледът към основните техники на обектно-базирания подход е илюстриран чрез декомпозиция на обекти.

Декомпозиция на обекта

Както вече се досетихме, с използването на съвременната OOP технология, решението идва от изгледа резултат от взаимодействието на няколко функционални елементавсяка система, която има процеси,

каква е предметната област на задачата.

Такава скин система има функционален елемент, който отхвърля всеки входящ поток (наречен информация) в процеса на най-важната задача.

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

Функционални елементи на системата, чиито параметри и поведение са присвоени на мисловна задача, която може да доведе до независимо поведение

(за да се „заключат” действията, които се намират във формата на елемента), името на обектите беше премахнато.

Процесът на представяне на предметна област като набор от обекти за обмен на информация се нарича декомпозиция на обекта.

Страна 10 z 51

Основни засади на ООП

За да се разбере какъв вид обекти се обсъждат в крайната обектна декомпозиция във всеки конкретен случай, е необходимо да се разбере първоначалният обектен подход за разработване на имитация различни модели на поведение на сгъваеми системи. Наборът от обекти на такива системи се определя при анализ на процесите, които се моделират.

дупето. Декомпозиция на обект (симулационен модел

бензиностанции). Моля, спрете да се тревожим за количеството гориво, останало на бензиностанцията поради броя на бензиностанциите, параметрите на обслужване на скин бензиностанцията и интензивността на заявките за зареждане с гориво (разглеждаме един вид гориво ).

Задача от този вид се очаква да разчита на използването на имитационни модели. Моделът програмно представя реален процес със зададени параметри, като същевременно записва неговите характеристики. Чрез повтаряне на процеса на симулация с различни стойности на параметрите за обслужване и получаване на приложения, изследователят избира конкретни стойности на характеристиките, които ще бъдат графиките на анализа на депозитите.

Процесът на експлоатация на бензиностанция с три бензиностанции може да бъде показан на следните диаграми.

В света сложната изчислителна технология и компютрите започнаха да се използват за по-сложни задачи. Оказа се, че увеличаването на сгъваемите задачи е важно поради изчислителната сложност на компютрите и ефективността на писане на сгъваеми програми. Обектно-ориентирано програмиране(OOP) Самият Vinik е ефективен начин за справяне с трудностите, които възникват при създаването на сгъваеми програми.

Най-съществената част от ООП е специален подход към сложни програмни задачи, който се нарича обектно-ориентиран анализ, А обектно-ориентираното програмиране е просто удобен инструмент за прилагане на този подход.

История

Основатели на ООП са известните норвежци Кристен Нигаард и Оле-Йохан Дал. Работейки върху корабостроителни симулации, Nygaard осъзнава, че основните софтуерни функции са неефективни при създаването на такива сложни програми и така Nygaard започва да разработва концепции за ново програмиране, което ще позволи летвата да бъде вдигната поради сгъваемостта и както е наречена за първи път. обектно-ориентиран(Самият термин е въведен от Алън Кей, авторът на езика Java). Заедно с Ole-Johan Dahl Nygaard анализирахме основните принципи на ORP и практическите механизми за тяхното прилагане, които след това бяха разработени от първата ORP Simula. Заслугите на тези учени бяха високо оценени от световната научна общност и през 2001 г. Нигаард и Дал станаха лауреати на наградата Алън Тюринг - своеобразен аналог на Нобеловата награда за компютърни науки.

Mova Simula придоби популярност в академичните среди, но поради редица причини не спечели популярност сред разработчиците на комерсиален софтуер. Тези основни идеи и възможността за ORP станаха много привлекателни за програмистите. През годините са създадени и други OY: SmallTalk (1980), C++ (1985), Eiffel (1986), Object Pascal (1986) и Delphi (1995), Oberon-2 (1991), Java (1991), Visual Basic (1991) и много други. Дейностите на тези компании се превърнаха в индустриални стандарти в програмата.

Характеристики на ООП

Основната идея на ООП се крие във факта, че следва създаването на програмни структури, поведението и взаимодействието на които е подобно на поведението и взаимодействието на обекти в реалния свят (така че програмата може да създава виртуални, а не аналози на истински същности). Обектно-ориентираното програмиране е отговорно за предоставянето на средства за ръчно и бързо прилагане на този подход.

В ежедневието хората разчитат (да не казваме) на различни методи на „икономия на мисълта“, които им позволяват да разберат и изразят сгъваемите кутии с прости думи. Типичните техники за спестяване на пари включват:

· Абстракция (абстракция на не-мрежови детайли);

· Uzgalnennya (виждане на скрити знаци върху различни предмети или предмети);

· Класификация (разпознаване на връзката между обектите и нивото на тяхното сходство).

Това е просто начин да помогнете на хората да се ориентират в сложността на обектите, които виждат. Обектно-ориентираното програмиране може също да предостави такива функции за „борба с безпорядъка на програмите“. За прилагане на обектно-ориентирания подход към програмирането се въвеждат нови концепции:

· Обекти – специални програмни структури, които интегрират данни и алгоритми за тяхната обработка;

· Капсулиране – улавяне на детайлите от функционирането на обектите;

· Spudkuvannya - "пряк" метод за създаване на нови класове;

· Полиморфизъм - възможността за комбиниране на множество реализации на една функция.

Обекти и клас

Обектите са специални програмни единици, които се формират от тези алгоритми за обработка на същите данни. Данните, които влизат в склада на даден обект, се наричат полета(Атрибути, власти, членове). Алгоритмите, които влизат в склада на даден обект, се наричат методи(Услуги, операции, функции на членове). За съжаление в OVP няма обща уморена терминология и на различните езици се използват различни термини, за да се разберат.

Класи- Това са обективни видове данни. Точно както целите числа принадлежат към тип цяло число (например цяло число или байт), обектите също принадлежат към тип обект - клас. Всички обекти от един и същи клас имат еднакъв набор от полета и един и същ набор от методи.

В общите езикови езици (C++, Java) обектите се извикват Пазя копия(инстанции).

Недостатъкът на различните класове и обекти е, че проверката на логическите (семантичните) връзки между данните и функциите за обработка на данни е тривиална задача и може да се прехвърли основно на компилатора (компютъра) – сега можете да определите дали данните са неправилно коригирано.

Капсулиране

Капсулиране (буквално - „приемане“) - контролирано придобиване на информация за вътрешната структура на класа. Един клас може да има полета и методи, които се използват от обекти, включително за осигуряване на тяхната работа (например буфер в динамична памет, файл с работни данни, методи за работа с този файл и др.). Не е безопасно да променяте такива полета или да щраквате върху методите на обект за повикване - това може да унищожи вашата система. За да се гарантира безопасността на обекти като полета, този метод може да бъде грабвам- Защитете звяра пред тях.

От позицията на „бойната сложност“, капсулирането ви позволява да прехвърлите част от контрола върху правилността на работата с обекти към компилатора (компютъра).

Ще демонстрираме различните възможности за капсулиране на полета и методи (всеки ден до автоматичното капсулиране на всички полета). Индустриите на обектни езици, като C++, Java, Delphi, Eiffel и др., имат три нива на полета и методи за капсулиране:

· публичен – за първи път обществени полетаНяма общи обмени между методите на обектите;

· защитени - веднага да откраднем нивитеНе може да има повече методи освен методите на този клас и методите на дъщерните класове;

· частни - направо частни полетаи методите могат да бъдат обвинени в методите в този клас.

успокояване

успокояване- създаване на нови класове чрез добавяне на допълнителни детайли към съществуващи класове, като се пропускат описания на елементи, които се избягват. При наследяване се извиква новият клас по класове(деца, подклас), а изходният клас се извиква предшественик клас(Базов, Баткивски, супер клас).

Намаляването ще съкрати размера на програмата чрез изключване на повтарящите се описания. Всички полета и методи, декларирани в класа предшественик, се прехвърлят автоматично към подкласовете и обикновено се извикват упадък(ще бъде въведен).

Каквото и да изисква методът на Отеца, вие можете преоценяване- тобто. Признайте, че друг алгоритъм се използва по същия начин като метод на класова платформа.

Действията се насърчават множествен спад, в който един клас отказва всички мощности и методи едновременно между няколко класа. За съжаление голяма част от объркването се крие в логически конфликтни ситуации, тъй като поддръжката усложнява езиковото програмиране и особено компилатора. Поради тези причини в много случаи по-голямата част от спада просто се блокира, в противен случай може да бъде отнет.

Нарича се съвкупността от всички класове предци и класове произход Йерархия на класовете.

Кондензацията на класове е централната концепция на ООП, която пряко и косвено се основава на други концепции и механизми. Абсолютното мнозинство от ORP механизмите изискват йерархия от класове, за да разкрият своите предимства.

Полиморфизъм

Полиморфизъм(Буквално - „разнообразие от форми“) - способността да се използва едно име за няколко метода (или функции), които могат да имат подобно значение. Друга интерпретация – един метод (функция) може да има няколко варианта за изпълнение; се извиква такъв метод (функция). полиморфен. Подобно на други ORP механизми, полиморфизмът особено опростява разработването на сложни програми. Всъщност полиморфизмът подсилва концепцията Каквотрябва да печелите пари, освен това якНяма нужда да сте плахи.

Ако направим аналогия от реалния живот, тогава полиморфизмът е в съответствие с реалния живот. Например думата „музика“ означава „свири на музикален инструмент“. Но различните музикални инструменти се свирят по различен начин. Има само един термин, но има много опции. И така, "музика" - полиморфно действие. В OOP „правете музика“ се потвърждава от полиморфен метод, който има своята реализация за скин клас музикални инструменти

В ООП има два вида полиморфни методи revantageі виртуален.

Методи за обновяванепризнат за Vikonanny От данни от различни типове. Има различни имена, както и различни списъци с аргументи и/или типа на стойността, която се ротира.

Виртуални методи признат за Vikonanny обаче зад операцията по подмянапо спорни въпроси, но класовете се избягват. Виртуалните методи имат различни имена и прототипи. Основната им характеристика е, че винаги точно отговарят на реалния клас на обекта.

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

Предимствата на виртуалните методи се разкриват само в различни йерархии на класове. Типична схема за използване на виртуални методи е следната:

· Класът на предшественика на йерархията има полиморфен метод, което означава дълбоко навлизане. В този случай или виртуалният метод на vikorist, или самият метод е виртуален.

· За класовете за кацане съответният виртуален метод се преоценява – за класа скин съответното действие се преоценява по свой начин.

· Когато се направи извикване за обект, който принадлежи на родителски клас, полиморфен метод всъщност се извиква до виртуалния метод на родителския клас (не на родителския клас).

Добър пример за такова използване на виртуални методи е системата за интерфейс с графичен прозорец на Delphi или Visual Basic: видимият елемент на графичния интерфейс е бутон, бутон и т.н. - може да се прилага за класа TControl. Класът TControl въвежда усъвършенствани полиморфни методи за рисуване на елементи от графичния интерфейс и можете да рисувате върху екраните си ръчно.

Обектно-ориентираното програмиране очевидно не се разпознава в Rock Standard от 2004 г., но в Obovyazkov Minimum ще има тема на мястото на информационните науки за специализирани студенти (Riven B): Обектно-ориентирано програмиране: обект, мощности на обект, операции върху обект. Там е изобретена и технологията за обектно-ориентирано програмиране.

Prote OVP не разви лесно практиката на компютърни науки (програмиране) в богатите училища, а също и на страниците на училищни помагала ( УгриновичН.Д. Информатика и информационни технологии. Пиручник за 10-11 клас, 2005. М: БИНОМ. Лаборатория на знанието). В допълнение, пропедевтичният курс по информатика за начално училище (работно шиене от авторски колектив под ръководството на О. Горячов. 1-4 клас) също ще осигури разбиране обекти йога органи.

Технологията (парадигмата) на ООП не е толкова свързана с овладяването на настоящите техники за програмиране, колкото с разработването на обектния модел на основния проблем. За това е необходимо да имате добри познания за основните принципи на ООП и програмирането в бъдеще, като познаването на ООП не е задължително - основателите и теоретиците на ООП са писали за това повече от веднъж. По този начин, Grade Buch в книгата си "Обектно-ориентиран дизайн и анализ" заявява следната максима: "Писането на програми в обектно-ориентиран стил е възможно на всеки (не-обектно-ориентиран) език. gramovannya." За да задействате алгоритъма на OOP технологията, е необходимо да формулирате списък с обекти, от които работи алгоритъмът, да помислите за силата на обекта на кожата и да приложите алгоритъма в резултат на взаимодействието на описанията на тези обекти.

Както вече беше казано от статистиката, такъв подход ще опрости повечето от сложните задачи, но в рамките на училището (с изключение на ограничен брой години) е важно да се измислят заместващи първоначални задачи, така че за да не бъде пресилено от използването на нови технологии.ORP във външния свят.

Всъщност OVP на училището се разглежда като невидима част от визуалното и компонентно програмиране в настоящите професионални системи за програмиране и като обекти, които се изучават в готови за използване обектни библиотеки от различни нива - това и библиотеки за използване на графичния интерфейс на Добавки на Windows и типове данни с богати универсални библиотеки (например STL C++). За да научите как да използвате тези библиотеки, е достатъчно да знаете и разберете няколко прости правила за синтаксиса на вашето програмиране. Подобни „знания“ обаче не доближават учениците до професионалното развитие на моето програмиране, нито водят до разбиране на OVP. Але, песен, няма нищо ужасно в това. Училищната информатика и в специализираните училища не се фокусират върху изготвянето на професионални програми. Приложението на ООП е специална тема и често не се обръща достатъчно внимание на специфичните им специалности.

Без да се отрича напълно позицията на някои експоненти на компютърните науки, важно е да се постави обектно-ориентиран подход в областта на образователното програмиране, включително в училище, важно е, че ORP не може да бъде разбран без такива основни принципи като програма. , виконавется, зминна, умова, цикъл и др. Концепцията за ООП включва и класическо процедурно програмиране (гл. “ Подпрограми"), подобно на механиката на Айнщайн - механиката на Нютон: възможно е да идентифицираме процедурната програма като един обект, който ще пропуснем за простота. Така че, преди да започнем учебната програма в училище, трябва да научим основни речи. І по-малка способност за работа със съвременни инструменти за визуално програмиране (Delphi, Visual Basic, Visual C++
и т.н.) да се запознаят с концепциите за обекти и техните компоненти, главно чрез използването на допълнителни техники за изучаване на програмиране зад кулисите.

Секретна информация

ООП е стил на програмиране, който има 80 години от 20 века. В допълнение към процедурните, където данните и инструкциите се обработват, те се обработват едно до друго, при обектно-ориентираното програмиране информацията се комбинира в едно цяло.

Основни засади на ООП

успокояване

Друг принцип на ORP е затихването - способността на един клас да адаптира методите на друг, без да повтаря действителното им изпълнение. Уплътняването позволява изходният код да стане излишен.

Полиморфизъм

Друг принцип на ORP е полиморфизмът. Тази концепция означава, че за манипулиране на обекти с различна степен на сложност можете да създадете един интерфейс, който реагира по различни начини и незабавно да изпълни правилно задачата.

Movi OOP

Принципите на ООП са възприети в най-популярните езици за програмиране, като C++ и Java, на които са разделени голяма част от програмите. Є и най-малко vikorystovuvaní movy OVP - tse Delphi, Object Pascal, Ruby и така нататък.

Критика към ООП

Въпреки предимно положителните резултати от тази методология, принципите на ORP често се признават от критиците. Точно както OOP има своите недостатъци.

На първо място, преходът е плавен. За да се разберат принципите на ORP, е необходимо да се отдели много време, особено за хора, които работят само с програмиране на процедурни езици.

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

Трето, универсалността на методите може да доведе до факта, че изходният код и програмите, които са разбити, ще бъдат преоборудвани с функции и възможности, които не са необходими в този конкретен случай. От друга страна, това показва неефективност от гледна точка на паметта. Въпреки това, независимо от мислите на отчуждените хора, броят на ООП програмите непрекъснато нараства, а самите програми се развиват бързо.

Galmuє