[ Pobierz całość w formacie PDF ]

tworzenia oprogramowania. Podobnie jak reszta ksi ki, rozdział ten zakłada pewien
poziom do wiadczenia Czytelnika w programowaniu proceduralnym, choć niekoniecznie
w j zyku C. Kto nie czuje si mocny w tej dziedzinie, powinien przej ć multimedialny
kurs Thinking in C dost pny do pobrania na stronach witryny www.MindView.net.
Tre ć rozdziału stanowi podstaw , a jednocze nie materiał uzupełniaj cy reszt ksi ki.
Wiele osób nie chce zagł biać si w programowanie obiektowe bez uprzedniego zrozumie-
nia jego ogólnych koncepcji  dlatego opisz tu wiele z nich, tworz c w ten sposób solidny
obraz całej techniki. Z drugiej jednak strony s tacy, którzy maj problemy ze zrozu-
mieniem ogólnych idei przed poznaniem  mechaniki  ludzie ci mog poczuć si za-
gubieni i zakłopotani bez jakiego fragmentu kodu jako punktu zaczepienia. Je eli nale ysz
do tej drugiej grupy i nie mo esz si ju doczekać omawiania specyfiki j zyka, oczywi cie
7KLQNLQJ LQ -DYD (G\FMD SROVND
mo esz opu cić ten rozdział  na tym etapie nie uniemo liwi to pisania programów i nauki
j zyka. Powiniene jednak e powrócić do niego pó niej, aby zrozumieć, dlaczego obiekty s
wa ne i jak przy ich u yciu projektować oprogramowanie.
3RVWSXMFD DEVWUDNFMD
Ka dy j zyk programowania dostarcza pewnej abstrakcji. Mo na próbować bronić tezy, e
zło ono ć problemów, jakie jeste my w stanie rozwi zać, jest bezpo rednio zale na od
rodzaju i jako ci u ywanej abstrakcji. Przez  rodzaj abstrakcji rozumiem odpowied na
pytanie:  Czym jest to, czego abstrakcji dokonujemy? . J zyk asembler jest niewielk
abstrakcj maszyny. Wiele tzw. imperatywnych j zyków, które stworzono pó niej (takich
jak Fortran, BASIC i C), stanowiło niewielk abstrakcj asemblera. Były w porównaniu
z nim znacznym usprawnieniem, jednak pierwotna abstrakcja pozostała niezmieniona 
wci wymagane było my lenie w kategoriach struktury komputera, a nie struktury roz-
wi zywanego problemu. Programista musiał dokonać powi zania pomi dzy modelem
maszyny (w  przestrzeni rozwi zania , czyli miejscu, w którym modelujemy problem,
takim jak komputer) a modelem samego rozwi zywanego problemu (w  przestrzeni pro-
blemu , czyli miejscu, w którym problem istnieje, np. w działalno ci firmy). Wysiłek
wymagany przy konstrukcji takiego odwzorowania w poł czeniu z faktem, i jest ono
czym zewn trznym w stosunku do j zyka programowania, powoduje, e programy s
trudne do napisania i kosztowne w piel gnacji. Ubocznym skutkiem tych kłopotów jest po-
wstanie całej gał zi wiedzy, zwanej  metodami programowania .
Alternatyw dla modelowania maszyny jest modelowanie samego problemu. Wczesne
j zyki programowania, takie jak LISP czy APL, przyjmowały okre lony sposób widzenia
wiata ( Wszystkie problemy s w ostateczno ci listami albo  Wszystkie problemy s
algorytmiczne ). PROLOG sprowadza wszystkie problemy do ci gów decyzji. Powstały
j zyki przeznaczone do programowania opartego na ograniczeniach (ang. constraint-
based programming) oraz do programowania wył cznie poprzez manipulacj symbolami
graficznymi (te ostatnie okazały si zbyt restrykcyjne). Ka de z tych podej ć jest odpo-
wiednie dla okre lonej klasy problemów, dla której zostały opracowane, jednak w innych
przypadkach staje si nieefektywne.
Programowanie obiektowe idzie krok dalej, dostarczaj c programi cie narz dzie do re-
prezentowania elementów w przestrzeni problemu. Reprezentacja ta jest dostatecznie
ogólna, by nie ograniczała si do jakiego konkretnego typu problemów. Odwołujemy
si do elementów w przestrzeni problemu, jak i do ich odpowiedników w przestrzeni
rozwi zania, u ywaj c tego samego słowa   obiekt (oczywi cie potrzebne s rów-
nie obiekty, które nie maj odpowiedników w przestrzeni problemu). Pomysł polega na
umo liwieniu programowi dostosowania si do specyficznego j zyka danego problemu
poprzez dodanie nowych typów obiektów, dzi ki czemu przy czytaniu kodu opisuj cego
rozwi zanie natrafiamy na słowa wyra aj ce sam problem. Abstrakcja taka jest pot niejsza
i bardziej elastyczna od tych, którymi dysponowali my wcze niej1. Programowanie [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kajaszek.htw.pl