Питхон - Објекти

Преглед садржаја
У Објектно оријентисано програмирање, објекти су апстрактни прикази елемената, које дефинишемо кроз њихове атрибуте и који имају низ метода које нам омогућавају да манипулишемо и имамо приступ тим атрибутима.
постоје 3 карактеристике који нам дају разлог да користимо сопствене објекте уместо да зависимо од функција, библиотека и глобалних група које нам језик ставља на располагање, а то су:
  • Полиморфизам: употреба истих операција на различитим објектима различитих класа.
  • Инкапсулација: сакрију његове атрибуте од ентитета изван објекта како би их могао заштитити.
  • Наслеђивање- Креирати конкретније објекте који наслеђују основне атрибуте и методе опште више класе.

Овај израз значи да има много облика, то значи да можемо изводити операције које ће радити другачије у зависности од врсте или класе објекта. Узмимо једноставан пример, замислимо да имамо корпу за куповину, затим дефинишемо како желимо да се добију подаци о ценама и жељени производ, као што видимо на следећој слици да правимо тупле.

Шта би се догодило ако би се проширила функционалност корпе за куповину и сада бисмо радили са аукцијама, на неки начин би требало да наведемо вредности које се морају примити и како поступити када се користе исте методе, на начин на који би многи мислили је да направи функцију следећег облика, међутим, није прикладно.

Као што можемо видети на слици, покривамо могућности тренутка, међутим, шта се дешава када се повећају функционалности, мораћемо да стално ажурирамо овај код, ту долази до полиморфизма и оно што ми радимо је да дефинишемо да сваки Објекат враћа своју цену без обзира на то како се израчунава јер је то нешто интерно за сваку класу, што би било следеће:

Тада можемо видети да је то нешто што нам помаже да имамо код који је временом издржљивији и лакши за одржавање.
Ово састоји се у скривању унутрашњих детаља класе од спољног света, тако да јој се може приступити само помоћу властитих објеката и метода, на овај начин можемо радити с класама без потребе за познавањем њиховог интерног рада, елиминирајући сложеност имплементације и штитећи логику унутар наших објеката.
Такође нам дозвољава радите са уверењем да се подаци у оквиру нашег објекта неће променити, будући да ако раде на апстрактан начин, моћи ћемо више пута створити инстанце и свака инстанца је потпуно индивидуална.
Погледајмо пример објекта који није инкапсулиран:

Овде то видимо иако је било о1 који је направио скуп имена, о2 приступити истом имену без да сте га поставили, ово би у апликацији било проблематично, замислимо да нам је потребна цена неколико производа и сваки од њих замењује цену претходног.
Сада са енкапсулацијом, погледајмо како би цео ток програма функционисао.

Овде видимо да сваки објекат задржава своје име, па знамо да можемо безбедно да радимо тако што ћемо добити исправне вредности за сваки од наших објеката.
wave wave wave wave wave