Narzędzia wizualne bez obiektów

Technologia obiektowa jest w niebezpieczeństwie. Jeśli nie zachowamy należytej ostrożności, zaprzepaścimy szansę rozwoju jednej z najbardziej zaawansowanych technik programowania od czasu wynalezienia bibliotek podprogramów.

Technologia obiektowa jest w niebezpieczeństwie. Jeśli nie zachowamy należytej ostrożności, zaprzepaścimy szansę rozwoju jednej z najbardziej zaawansowanych technik programowania od czasu wynalezienia bibliotek podprogramów.

Problem nie polega na tym, że technologia ta nie sprawdza się. Wręcz przeciwnie. Sprawuję się ona doskonale, spełniając właściwie wszystkie pokładane w niej nadzieje. Są to wysokiej jakości narzędzia architektury modularnej, które pozwalają w bardzo efektywny i szybki sposób budować nowe aplikacje.

Co więcej, technologia ta sprawdza się dobrze przy tworzeniu aplikacji biznesowych i komercyjnych. Dzięki narzędziom zorientowanym obiektowo firmy budują dużo szybciej ważne dla nich aplikacje, co zaoszczędza im czas i umacnia ich pozycje na rynku.

Skąd w takim razie teza, że technologia ta jest w niebezpieczeństwie. Ano stąd, że większość produktów tego typu nie oferuje wcale użytkownikowi technologii programowania obiektowego. To, iż producent wyposażył dane narzędzie w ikony czy rozwiązania umożliwiające łączenie poszczególnych elementów oprogramowania w jedną całość nie świadczy jeszcze wcale o tym, że mamy do czynienia z technologią obiektową. Są to tylko pewne zewnętrzne atrybuty towarzyszące tej technologii, podczas gdy podstawowe funkcje realizowane przez te narzędzia mają mało wspólnego z technologią obiektową.

Co gorsza, użytkownicy mają wciąż bardzo małe rozeznanie co do tego, co powinno się kryć tak naprawdę pod hasłem - zorientowane obiektowo. Kupują więc często produkt, nie oferujący im wcale rozwiązań, których od niego oczekują.

Zatem wróćmy do meritum sprawy i spróbujmy zdefiniować, co powinno charakteryzować technologię obiektową. Produkt oferuje technologię obiektową tylko wtedy, gdy jest wyposażony w mechanizmy: dziedziczenia, enkapsulacji i polimorfizmu. Opiszmy dokładniej każdy z tych mechanizmów. Dziedziczenie: możliwość dziedziczenia przez obiekt podrzędny cech przypisanych obiektowi nadrzędnemu. Enkapsulacja: wzajemne powiązanie procedury (programu) i danych, przez upakowanie ich razem w ramach jednego obiektu. Polimorfizm: możliwość wykorzystywania przez różne obiekty tych samych procedur (obiekty wyposażone są w ten sam interfejs).

Dlaczego dokładne zrozumienie tych trzech mechamizmów jest tak ważną sprawą. Ano dlatego, że dysponując dopiero tymi trzema rozwiązaniami można w pełni docenić zalety technologii obiektowej. I proszę nie myśleć, że są to wszystko tylko akademickie rozważania na temat podstaw technologii obiektowej, które nie mają nic wspólnego ze światem rzeczywistym. Wręcz odwrotnie. Są to podstawowe elementy narzędzia, które będzie nam służyć do budowania i eksploatowania systemu informatycznego naszej firmy.

Przypatrzmy się teraz bliżej greckiemu terminowi - polimorfizm. Używając techniki polimorfizmu można pewnym funkcjom biznesowym przypisać określone nazwy, co pozwala różnym obiektom przepisywać te funkcje do siebie i wykorzystywać do określonych celów.

Wyobraźmy sobie np., że dyrektor ds. finansowych w naszej firmie chce otrzymać od każdego działu dokładne sprawozdanie na temat dochodów i wydatków. Wysyła on wtedy do każdego z działów takie samo polecenie. Po sporządzeniu sprawozdań każdy dział odpowiada, używając do tego celu swoich, wewnętrznych procedur. Dyrektor nie musi generować oddzielnych procesów, które wysyłają te prośby do każdego działu. Musimy sobie zdać sprawę, że nie dysponując mechanizmem polimorfizmu, bardzo trudno jest zaprojektować oprogramowanie, które realizowałoby w naszej firmie tę prostą przecież czynność biznesową.

Kolejną ważną sprawą przy projektowaniu systemu informatycznego jest możliwość rozpoznawania każdego obiektu według klucza, jakim jest usytuowanie tego obiektu w hierarhicznej strukturze wszystkich obiektów. Hierachia ważności obiektów jest przecież bezpośrednim odzwierciedleniem filozofii, którą stosujemy do zarządzania firmą. Ustalając ważność obiektów względem siebie (używając do tego celu pewnych ogólnych zasad, opartych na teorii zarządzania przedsiębiorstwem), wyznaczamy wzajemne relacje między poszczególnymi podmiotami przedsiębiorstwa, a więc produktami, klientami, liczbą zamówień, poziomem zapasów w magazynie itd. Pozwala to zrozumieć, co łączy te wszystkie podmioty i poznać mechanizm ich współzależności, jednocześnie zachowując świadomość o ich odmienności. Dysponując oprogramowaniem wyposażonym w mechanizm dziedziczenia możemy bardzo łatwo zaprojektować system informatyczny oparty na tych założeniach. W przeciwnym wypadku będzie to bardzo trudne.