Prototipinio OOP
įgyvendinimas su Python
Petras Zdanavičius
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