ЗНАЙ ИНТУИТ, Лекция, Основи на обектно-ориентираното програмиране
Добродетелите на ООП
Очакваме от всяка методология за разработване на софтуер, че тя ще ни помогне при решаването на нашите проблеми. Но едно от най-големите предизвикателства пред дизайна е сложността. Колкото по-голяма и по-сложна е една софтуерна система, толкова по-важно е да я разбиете на малки, добре дефинирани парчета. За да се справите със сложността, трябва да се абстрахирате от детайлите. В този смисъл класовете са много удобен инструмент.
- Класовете ви позволяват да конструирате от полезни компоненти с прости инструменти, което ви позволява да се абстрахирате от подробностите за изпълнението.
- Данните и операциите върху тях образуват определена единица и те не се разпространяват в цялата програма, както често се случва в процедурното програмиране, а са описани заедно. Локализацията на кода и данните подобрява видимостта и поддръжката на софтуера.
- Инкапсулацията ви позволява да въведете модулност, което улеснява паралелното изпълнение на задачата между множество изпълнители и актуализиране на версии на отделни компоненти.
OOP дава възможност за създаване на разширяеми системи. Това е едно от основните предимства на ООП и точно това отличава този подход от традиционните методи за програмиране. Разширяемостта означава, че съществуваща система може да бъде направена да работи с нови компоненти, без да прави промени в нея. Компоненти могат да се добавят по време на изпълнение.
Полиморфизмът е полезен предимно в следните ситуации.
- Обработка на разнородни структури от данни. Програмите могат да работят, без да разграничават вида на обектите, което значително опростява кода. По всяко време могат да се добавят нови видове.
- Промяна на поведението по време на изпълнение. На етапа на изпълнение един обект може да бъде заменен с друг, което улеснява, без промяна на кода, адаптирането на алгоритъма в зависимост от това кой обект се използва .
- Изпълнение на работа с наследници. Алгоритмите могат да бъдат обобщени, така че те вече да могат да работят с повече от един вид обекти. .
- Създаване на "рамка" (рамка). Независими от приложения части на домейна могат да бъдат внедрени като набор от общи класове или рамка и допълнително разширени чрез добавяне на специфични за приложението части.
Често софтуерът за многократна употреба не може да бъде постигнат, тъй като съществуващите компоненти вече не отговарят на нови изисквания. OOP помага да се постигне това, без да се нарушават съществуващите компоненти, което ви позволява да извлечете максимума от възможността за повторна употреба на компонентите.
- Намалява времето за разработка, което може да бъде изразходвано за други задачи.
- Компонентите за многократна употреба обикновено съдържат много по-малко грешки от новоразработените, тъй като те са тествани повече от веднъж.
- Когато даден компонент се използва от няколко клиенти едновременно, подобренията, направени едновременно в неговия код, имат положителен ефект върху много програми, работещи с него.
- Тъй като програмата разчита на стандартни компоненти, нейната структура и потребителски интерфейс стават по-еднакви, което улеснява разбирането и по-лесното използване.