Zalety i wady programowania obiektowego

Kod komputerowy. Głęboko zielony ekran

Większość nowoczesnych aplikacji na komputery PC i urządzenia mobilne wykorzystuje techniki OOP.

Źródło obrazu: SoulArt/iStock/Getty Images

Języki programowania obiektowego, takie jak C++, Java i Visual Basic, zostały opracowane przez informatyków w celu przyspieszenia programowania i poprawy jakości oprogramowania. Techniki oprogramowania OOP dzielą programy na bloki funkcjonalne zwane obiektami, dzięki czemu są często potrzebne funkcje, takie jak przyciski kontrolne, zarządzanie bazami danych i matematyka, łatwiejsze w użyciu i udostępnianiu między programiści. Jednak korzyści wiążą się z kompromisami, takimi jak zwiększona złożoność oprogramowania i zmniejszona wydajność.

Lepsza produktywność

Techniki OOP wymuszają na programiście reguły, które na dłuższą metę pomagają mu wykonać więcej pracy; gotowe programy działają lepiej, mają więcej funkcji i są łatwiejsze do odczytania i utrzymania. Programy, które nie używają OOP, są zwykle dużymi, ciągłymi fragmentami tekstu, jak bardzo długie rozdziały w książce. Kiedy programiści wkraczają, aby to zmienić, tekst w końcu staje się zdezorganizowany i trudniejszy do naśladowania. W przeciwieństwie do tego, programiści OOP biorą nowe i istniejące obiekty oprogramowania i „łączą” je ze sobą, aby tworzyć nowe programy. Ponieważ biblioteki obiektów zawierają wiele przydatnych funkcji, twórcy oprogramowania nie muszą tak często wymyślać koła; więcej czasu poświęcają na tworzenie nowego programu.

Wideo dnia

Niższe koszty programowania

Zwłaszcza w przypadku większych projektów, OOP pomaga obniżyć koszty pracy programistycznej. Personel pracujący nad projektem może opracować własną bibliotekę obiektów oprogramowania, pozwalając programistom na łatwe korzystanie ze swojej pracy i skrócenie czasu potrzebnego na tworzenie programów. Dzięki lepszej jakości oprogramowania programiści spędzają mniej czasu na naprawianiu nieprawidłowo działających programów, co dodatkowo obniża koszty pracy.

Bardziej stroma krzywa uczenia się

Aby opanować OOP początkujący musi nauczyć się nowych, abstrakcyjnych pojęć, takich jak wielopostaciowość -- ponowne wykorzystanie obiektów podczas dodawania do nich nowych funkcji -- i kapsułkowanie -- ukrywanie części wewnętrznych danych obiektu w celu poprawy bezpieczeństwa -- żadne z tych pomysłów nie można znaleźć w starszych stylach programowania. Te koncepcje nie tylko wymagają czasu, ale mogą być zbyt złożone dla młodszych przyszłych programistów lub tych, którzy programują tylko okazjonalnie.

Wolniejsze oprogramowanie

Oprogramowanie obiektowe może wiązać się z dodatkowym kodem porządkowym, który nie jest konieczny w innych językach komputerowych; komputer musi wykonać dodatkowe programowanie, spowalniając czas odpowiedzi aplikacji. W przypadku projektów, w których ważna jest szybkość, programiści mogą zdecydować się na napisanie najbardziej krytycznych czasowo części w trybie innym niż OOP języki takie jak asembler lub C, rezerwujące kod OOP dla okien lub przycisków -- obszary, w których obiekty mają wyraźną korzyść.