OOP v Lotus Scriptu 1
Novinky
24.09.2003 - David Bulejčík
Poznámka redakce světNotes.cz: Další díly seriálu budou vycházet nepravidelně, jak se autorovi i nám bude dařit je připravovat a zpracovávat. Souběžně s tímto seriálem pro vás připravujeme ještě seriál o Lotus Scriptu pro začátečníky. Na jeho první díl se můžete těšit v nejbližších dnech.
Nejdříve zmíním důvody, které mě osobně vedou k používání objektů:
- Svět se mění každým dnem. Součástí těchto změn jsou i změny ve způsobu fungování firem a jejich přístupu k zákazníkům. Nejlépe je tyto změny vidět na tom, že dochází k monitorování jednotlivých procesů vně firem, k jejich optimalizaci a nasměrování k co největší výstupní hodnotě, která je pro klienta jedním z nejdůležitějších faktorů ovlivňujících jeho volbu pro určitý produkt. V současné době můžeme tento způsob pozorovat například v tom, že mnohé firmy jsou masově certifikovány dle ISO norem (příkladem je norma ISO 900x:2000). Zjednodušeně řečeno, je to definování vstupních a výstupních procesů, které se týkají předmětu činnosti dané firmy. Může to být nějaký výrobek – např. kolo, auto, elektronická součástka, polévka ze sáčku, ale i služba jako uklízení silnic, audit nebo vývoj softwaru. Pro nás, společnosti nebo jednotlivce zabývající se vývojem programů, které tyto firmy používají, je důležité o tomto faktu vědět. Ptáte se proč? Aplikace, kterou vyvineme a kterou bude klient používat ve svém informačním systému, je součástí procesů vně firem a stejně jako my – dodavatel je součástí hodnocení a zlepšování. Pryč je doba, kdy se firmy chlubily tím, že mají software na míru a od společnosti, jako je IBM. Nikdo se neodvažoval ani zeptat, k čemu jej firma používá, jaká je návratnost investice a jak uživatelé hodnotí přínos systému pro svoji práci. Aplikace samotné se stávají předmětem měření, hodnocení a zlepšování. Pokud vyvinete aplikaci, která bude plná chyb nebo nebude uživatelsky přívětivá, klient na základě hodnocení a měření zjistí, že pro něj není přínosná, a jednoduše se jí zbaví. Naproti tomu, pokud bude pro klienta finančně zajímavá a maximálně funkční (splňující potřeby funkčnosti definované klientem, spolehlivá a uživatelsky přívětivá), stane se předmětem zlepšování a dalšího vývoje. A to je důležité pro nás. :-) Společný dialog vedený s klientem pro zabezpečení maximální funkčnosti aplikace je předmětem činnosti konzultanta. Design aplikace je předmětem činnosti designera. Na programátorech je, aby aplikace byla spolehlivá a aby byla vyvinutá (v rámci možností) co nejrychleji a nejefektivněji (snížení nákladů). Právě tento fakt je jedním z důvodů proč při programování používat OOP techniky.
- Objektově orientované programování se víc přibližuje "reálnému" světu. Zdrojový kód je vnímán jako skupina objektů, které mají programátorem určené vlastnosti, mohou reagovat na různé podněty (metody tříd) a mohou samy vyvolávat vlastnosti jiných objektů. Je to, jako když potkáte na ulici hezkou holku. Tak nějak automaticky se na ni kouknete a pokud se koukne ona na Vás, tak se usmějete. :-) Dá se tedy s nadsázkou říct, že si vytváříte vlastní virtuální realitu.
Ale teď už pojďme k samotnému programování.
Syntaxe pro definici třídy je následná:
[
Public |
Private ]
Class jménotřídy [
As základnítřída
- Proměnné [ Private | Public ]
Příklad:
Private name As String
( Pozn. Public určuje, že proměnná je přístupná mimo inicializovaný objekt po celou dobu jeho
existence. Private určuje, že proměnná není přístupná mimo inicializovaný objekt po celou dobu
jeho existence. )
- Vlastnosti [
Public |
Private ]
Property {
Get | Set }
názevvlastnosti [
( [ argumenty
]
) ] [
As typ ] obsah
End Property
Příklad:
Public Property Get GetName As String
End Property
( Pozn. Public určuje, že vlastnost je přístupná mimo inicializovaný objekt po celou dobu jeho
existence. Private určuje, že vlastnost není přístupná mimo inicializovaný objekt po celou dobu
jeho existence. )
- Metody [
Public |
Private ] {
Sub | Function }
názevmetody [
( [
argumenty ]
) ] [
As typ ] obsah
End Sub
Příklad:
Private Sub AddAge ( Age As Integer )
SomeAge = SomeAge + Age
End Sub
( Pozn. Public určuje, že metoda je přístupná mimo inicializovaný objekt po celou dobu jeho
existence. Private určuje, že metoda není přístupná mimo inicializovaný objekt po celou dobu
jeho existence. )
End Class
A nakonec si vytvoříme jednoduchou třídu Person( funkční příklad je v příloze dokumentu ) se dvěma proměnnými.
Class Person
Private name As NotesName ‘Privátní proměnná name třídy person typu NotesName ---------
Private birthdate As NotesDateTime ‘Privátní proměnná birthdate třídy person typu NotesDateTime ---------
End Class