Prototipinio OOP
įgyvendinimas su Python

Petras Zdanavičius

OOP Apibrėžimas (Prastas)

OOP - programavimo paradigma, kompiuterinių programų architektūroje naudojanti objektus ir jų sąveikas

https://lt.wikipedia.org/wiki/Objektinis_programavimas

OOP Apibrėžimas (Mano, tai reiškiasi geras)

  • Yra objektai
  • Objekto viduje saugoma jo būsena. Atributų pavidalu
  • Objektas turi sąsają bendravimui su išore. Metodų pavidalu
  • Objektai sąveikauja vieni su kitais ne tiesiogiai keisdami vienas kito būseną, bet siuntinėdami vienas kitas žinutes. Metodų kvietimo pavidalu

"Klasikinis" OOP


          class MyClass:
              def __init__(self, my_attr):
                  self.my_attr = my_attr
          
Ir tada

          my_object = MyClass('my_attr_value')
          

OOP Istorija

  • 1969~1972 m. Alan Kay Xerox PARC ofise sukuria Smalltalk
  • Smalltalk yra pirmoji OOP kalba. Daugiau ne kalba, o programavimo aplinka
  • Bjarne Stroustrup: c + 1 == c++
  • C++ - saulėsMikroSistemos == Java
  • Alan Kay verkia kamputyje

Prototipinio OOP Istorija

  • 1987 m. David Ungar and Randall Smith tam pačiam Xerox PARC ofise, sukuria Self
  • Tik siauram ratui žmonių įdomus eksperimentas
  • Nevisai tiesa, nes Self JIT idėjos perpanaudojamos Java HotSpot VM
  • 1995 m. Brendan Eich sukuria JavaScript
  • 2017 m. visi verkia kamputyje

Kodas


          import petras_demo


          # petras_demo.safe_fake_demo_using_slides()
          petras_demo.live_demo()
          

Ačiū, kad klausėte apie prototipinį OOP