6.Парадигма ООП. Переваги та недоліки. Парадигма — спосіб або метод міркувань, який застосовується для розв’язання широкого класу задач. ООП — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. Складові: 1. Інкапсуляція — мовний засіб для приховування (локалізації, заборони доступа) до зміста об’єкту ззовні. 2. Наслідування — можливість об’єднати декілька класів в ієрархію, в якій “дочірні” класи отримують від “батьківських” класів їх властивості і методи. 3. Поліморфізм — мовний засіб, що дозволяє використовувати одні об’єкти, під виглядом інших об’єктів. Сьогодні багато мов програмування (Java, C#, C++, Python, PHP, Ruby, TurboPascal ObjectPascal (Delphi, FreePascal)) підтримують ООП. Як переваги ОПП відзначають: Підвищення рівня уніфікації розробки і можливість повторного використання не тільки програм, але і проектів, що веде до створення середовища розробки та переходу до складного створення ПЗ (перехід від безпосереднього програмування до проектування); Природність об'єктної моделі, орієнтованої на людське сприйняття світу, а не на комп'ютерну реалізацію; Зменшення ризику створення надмірно складних систем ПЗ, оскільки спочатку підхід передбачає еволюційний шлях розвитку системи в часі на базі вихідних, щодо нескладних підсистем. До основних недоліків ООП відносять значні початкові витрати і деяке зниження продуктивності функціонування ПЗ. Необхідний великий досвід і здоровий глузд, щоб вирішити, що ж заслуговує на те, щоб стати об'єктом. Парадигма ООП вимагає жорсткої прив’язки функцій (членів класу) до даних. Приклад: Алгоритм сортування за зростанням:
Sort(A, N) beg for(i=0; i<N-1;i++) for(j=i+1; j<N;j++) if(A[i]>A[j]) swap(A[i], A[j]); end
Мета: ReUse (повторне використання коду) Ідея: моделювання за допомогою об’єктів і створення власних типів
Складові: 1)Інкапсуляція 2)Наслідування 3) Поліморфізм (возможность под 1 именем обращаться к об’єктам разного типа)
Принципи ООП: 1. Все є об’єкт 2. Принцип власної пам’яті 3. Принцип взаємодії (об’єкти спілкуються один з одним час роботи надсилаючи один одному повідомлення) 4. Принцип спільних властивостей (властивості об’єкта визначаються на рівні класів, а не об’єктів. Приклад: Студент(поля ПЫБ, День Нар., успышнысть) 5. Принцип спільної поведінки(набір методів, ф-ій,,об’єктів визначається на рівні об’єктів, а на рівна класу) 6. Принцип наслідування (класи можуть обєднатися в ієрархії) Мови підтримки: Fortran+ Lisp- Algol 60-(60ті) Simula+ Smalltalk + Pascal-(70ті) C-(70ті) C++ +(80ті) Objective C- C#+ Ruby+ PHP+