sciaga po


Programowanie obiektowe-sposób tworzenia oprogramowania, w którym architektura każdego systemu opierana jest na modułach wyprowadzanych z typów obiektów, na których
system ten ma operować (a nie na funkcji bądź funkcjach, które mają się
znaleźć w tym systemie). Programowanie, zwykle w obiektowym języku programowania, w którym występuje wyodrębnienie obiektów (jako bytów programistycznych), ich klas oraz metod.

Obiekt- podstawowa jednostka konstrukcyjna, egzemplarz pojęcia. Każdy obiekt ma przypisaną tożsamość (można go nazwać lub w inny sposób odróżnić od innych obiektów), sdtan (są to dane przypisane do niego) i zachowanie (możesz wykonywać na nim operacje i on sam może wykonywać operacje na innych obiektach);posiada następujące rodzaje właściwości i odpowiedzialności:Atrybuty - reprezentują stan obiektu i związki z innymi obiektami, np. kolor, rozmiar, przynależność.Procedury (usługi, metody) - operacje, które obiekt może wykonywać, np. przemieszczanie, całkowanie, wyznaczanie stanu konta. Zasady-niezmiennicze reguły określające widzialność obiektu i sposób powiązania z innymi obiektami.

Klasa-wyobrażenie lub oznaczenie, które stosujemy dla obiektów w naszej świadomości. Klasę można utożsamiać z typem i stąd nazwa typy obiektowe. Klasa to zbiór obiektów o podobnych właściwościach, czyli mających wspólną strukturę i zachowanie, a więc takie same pola danych i metody. Klasa w języku programowania składa się ze swoich zmiennych i metod. Zmienne obiektu umożliwiają przechowywanie zestawu wartości określających stan obiektu, metody obiektu są jedynym interfejsem obiektu z jego otoczeniem.

Instensja typu obiektowego - definicja pojęcia, pewna koncepcja, idea stosująca się do określonej grupy obiektów, np. środek umożliwiający transport ludzi i rzeczy;

Ekstensja typu obiektowego - zbiór konkretnych typów (klas, pojęć), np. pojazdy lądowe, statki powietrzne i wodne;

Dziedzina-wybrany obszar zainteresowań, który zawiera kolekcję obiektów będących egzemplarzami dziedziny.

Specyfikacja dziedziny-kolekcja pojęć odnoszących się do wybranego obszaru zainteresowań.

Mechanizmy obiektowości:

-Obiekt jako dana - wykorzystywane tak, jak zmienne w językach programowania.

-Obiekt jako abstrakcyjny typ danych - definiowanie nowych typów obiektowych na bazie dostępnych w języku programowania typów danych wraz z operacjami, które mogą być wykonywane na tych typach.

-Ukrywanie informacji - informacja o wewnętrznej budowie obiektu nie jest dostępna poza jego definicją.

-Hermetyzacja - dostęp do obiektu wyłącznie za pośrednictwem jego metod. Hermetyzacja pozwala na uniezależnienie się od wewnętrznego sposobu reprezentacji danych. Na obiekcie możemy wciąż wykonywać te same operacje (wysyłać do nie go te same komunikaty) pomimo, iż jego wewnętrzna struktura została diametralnie zmieniona. Często nie musimy o tym nawet wiedzieć. Redukuje to znacząco wzajemne zależności pomiędzy nadawcą i odbiorcą. Zwiększa to niewątpliwie przenośność napisanego przez nas kodu i możliwość ponownego jego wykorzystania.

-Klasy generyczne - klasy nie posiadające swoich egzemplarzy (wystąpień), wykorzystywana do definiowania innych klas(np. templates w C++).

-Klasa abstrakcyjna-posiada przynajmniej jedną funkcję (metodę) czysto wirtualną.

-Interfejs-klasa abstrakcyjna, która posiada wszystkie funkcje (metody) czysto wirtualne.

-Polimorfizm parametryczny - wielopostaciowość obiektów indukowana użyciem różnych typów obiektowych wstawianych w miejsce parametrów formalnych.

-Polimorfizm inkluzyjny - użycie obiektów pochodnych, definiowanych na bazie obiektów zdefiniowanych wcześniej (agregacje, dziedziczenia obiektów).

-Metoda obiektu - operacja związana semantycznie z obiektem, stanowiąca jego interfejs do otoczenia obiektu.

-Polimorfizm metod - wielopostaciowość metod obiektów (związana z dziedziczeniem obiektów wirtualizacja metod).

-Wymiana informacji - przesyłanie komunikatów pomiędzy obiektami lub powiązanie obiektu z funkcjonowaniem mechanizmu obsługi zdarzeń w środowisku obiektowym.

-Kompromis - dwoista natura potocznego rozumienia pojęcia „obiekt” typ - klasa; zmienna - egz. klasy.

Współpraca pomiędzy obiektami jest realizowana dzięki przesyłaniu komunikatów, które stanowią sposób wymiany informacji. Mechanizm taki musi istnieć ponieważ obiekty nie istnieją w oderwaniu od siebie i do realizacji własnego zachowania potrzebują współpracy z innymi obiektami. Jak to ma miejsce w komunikacji między ludźmi konieczne jest istnienie nadawcy i odbiorcy. Komunikat-sygnał skierowany do obiektu, wywołujący określoną metodę lub operację, którą należy wykonać na obiekcie;może mieć parametry i odbierać dane zwrotnie;eliminuje dublowanie danych;zmiany w danych nie przenoszą się na niezainteresowane obiekty;zarówno komunikat jak nazwy występujące w ciele metody są wiązane dynamicznie, w związku z czym ten sam komunikat może być wysłany do różnych obiektów i może wywołać różne metody;

Związki pomiędzy obiektami(odwzorowania) do wystąpienia jednej klasy obiektów można przyporządkować jedno bądź wiele wystąpień innych klas obiektów. Relacje są specjalnym typem obiektowym (klasą), który umożliwia jednoznaczne określenie związku pomiędzy wieloma obiektami równocześnie. w językach zorientowanych obiektowo można zastosować dwie różne metody implementacji relacji klas-metoda zastosowania statycznych zmiennych typu obiektowego wewnątrz klasy implementującej relację,-metoda zastosowania dynamicznych zmiennych obiektowych wewnątrz klasy implementującej relację.klasa implementująca relację może zawierać statyczne zmienne odpowiednie dla każdej z klas występujących w relacji (relacje stałe).alternatywnie można zastosować dynamicznie zmienne obiektowe w obiekcie implementującym relację (relacje chwilowe).

Zależność - związek znaczeniowy, reprezentuje używanie obiektu danej klasy przez obiekt innej klasy (lub ogólniej jednego elementu przez drugi). Zmiany dokonane w definicji jednego z tych elementów (niezależnego) mogą mieć wpływ na zachowanie drugiego (zależnego). Jest najsłabszą relacją i oznacza, że jeden obiekt korzysta z usług udostępnianych przez drugi obiekt (lub ogólniej jeden element korzysta z usług udostępnianych przez drugi) (np. jako zwracany typ, parametr związany z operacją, obiekt tymczasowy, zasoby globalne)

Asocjacja (powiązanie) - związek strukturalny pomiędzy obiektami. Asocjacja może określać nawigację jedno lub dwukierunkową, w zależności od wystąpienia strzałek. Obiekty klas połączonych poprzez asocjacje pozostają w trwalej relacji, która trwa dłużej niż pojedynczej wywołanie metody. Obiekty będące w asocjacji odgrywają pewne role w tym związku, co opisuje się na końcach asocjacji wraz z krotnościami. Asocjacje mogą być nazywane, co pozwala na opis relacji definiowanej przez asocjację. Nazwy asocjacji są zazwyczaj sensowne, gdy asocjacja jest czytana w odpowiednim kierunku.

Agregacja (składanie, gromadzenie) - obiekty świata rzeczywistego bardzo często stanowią złożenie innych obiektów. Dobrym przykładem jest tutaj chociażby samochód, który stanowi złożenie różnorodnych podzespołów, w takim przypadku mówimy o agregacji (złożeniu, kompozycji) klas. złożenia mogą mieć charakter stały, co oznaczone jest na diagramach etykietą [n] i chwilowy - bez tej etykiety,klasy, z których składane są inne obiekty nazywane są agregatami klas

specjalny typ asocjacji do reprezentacji relacji „całość-część”. Kluczowym wskaźnikiem relacji agregacji jest współdzielenie przez obiekty czasu istnienia. Jeżeli zawierający obiekt jest niszczony, obiekt zawarty jest niszczony razem z nim (nie zawsze tak musi być!!! Tak jest raczej w kompozycji).

Kompozycja (zawieranie) - najsilniejsza relacja pomiędzy klasami. Kompozycja jest specjalną postacią agregacji, która wskazuje nie tylko trwale skojarzenie, ale również wyłączne zawieranie się. Tutaj już obiekt zawarty musi współdzielić czas życia obiektu zawierającego. W zawieraniu obiekt będący częścią może należeć wyłącznie do jednej całości. Kompozycja przedstawia relację, w której dane obiekty nie mogą bez siebie istnieć!!!

Generalizacji (uogólnienie)- pokazuje relacje między klasą ogólną, a klasą szczególną. Związek między dwoma bytami: ogólnym (przodek) i szczególowym (potomek). Obiekt bytu szczególowego może być używany w zastępstwie obiektu bytu ogólnego. W takim związku potomek ma strukturę i zachowanie przodka.

Realizacja - wskazuje, że klasa implementuje interfejs wskazywany przez strzalkę realizacji. Ponieważ interfejs definiuje tylko sygnatury operacji, relizacja wiąże interfejs z konkretną implementacją.

Dziedziczenie -Jest relacją która zachodzi między obiektami uogólnionym i specyficznym (generalizacja-specjalizacja),powinna być wybierana tylko jeśli klasa potomna rozwija (specjalizuje) możliwości klasy bazowej, ale cel istnienia danego typu nie ulega zmianie

Delegacja (asocjacja, agregacja, kompozycja)oznacza delegowanie części zadań, które nie stanowią głównego celu istnienia typu, innemu obiektowi. Realizacja zadań pobocznych częściej ulega modyfikacjom i dzięki wydelegowaniu ich realizacji do innego obiektu, kod staje się łatwiejszy w utrzymaniu

Dziedziczenie-Obiekt dziedziczy informacje ze swojej klasy oraz nadklas tej klasy. Klasa dziedziczy informacje ze swoich nadklas. Obiekt dziedziczący (dziecko) przejmuje od obiektu dziedziczonego (ojca) jego zmienne i metody. Oprócz tego może on mieć swoje własne zmienne i metody.

W dziedziczeniu strukturalnym klasy podrzędne dziedziczą z klasy nadrzędnej strukturę, czyli definicje atrybutów wraz z ich typami.

W dziedziczeniu behawioralnym klasa podrzędna dziedziczy metody.

Dziedziczenie-Możliwość zdefiniowania nowej, bardziej wyspecjalizowanej klasy na podstawie klasy już istniejącej (tzw. specjalizacja).

dziedziczenie jednobazowe-gdzie obiekty mogą dziedziczyć z jednego obiektu,

wielodziedziczenie-(dziedziczenie wielo-bazowe), gdzie obiekty mogą równocześnie dziedziczyć z wielu obiektów

Dziedziczenie jednobazowe:

class pojazd{ private:

int id;

char typ[20];

int kolo;

void PiszTyp();

void Narysuj();

}

class samochód:private pojazd{

char nr_rej[6];

void PiszRejestrację();

}

Metody polimorficzne:

class pojazd{ private:

int id;

char typ[20];

int kolor;

static void PiszTyp();

void Narysuj(); virtual;

}

class samochód:private pojazd{

char nr_rej[6];

static void PiszRejestrację();

void Narysuj();}

class figura {punkt środek;

public:

static punkt gdzie();

reaL pole() = 0;

void rysuj();

void przesuń(punkt p);

... };

class koło: public figura{

real promień;

real pole();

void rysuj() ...

...};

Wielodziedziczenie:

class potomek: public przodek1, public przodek2,...,private przodekN {........}

w przypadku metod wirtualnych, które w kilku różnych przodkach mają tę samą nazwę, trzeba jednoznacznie utworzyć alias do tej metody, która ma być faktycznie odziedziczona.

W klasie uzyskanej na drodze wielokrotnego dziedziczenia konflikty nazw mają miejsce, kiedy dwie cechy (atrybuty lub metody), odziedziczone po różnych przodkach mają tą samą ostateczną nazwę.Wyjątki od reguły:

1. Dwie cechy zostały odziedziczone po wspólnym przodku i żadna nie została ponownie zadeklarowana w stosunku do wersji pochodzącej z tego przodka.

2. Obie cechy mają zgodne sygnatury i co najmniej jedna z nich została odziedziczona w postaci abstrakcyjnej.

3. Obie cechy mają zgodne sygnatury i obie są redefiniowane w klasie.

Zwartość-Miara, jak bardzo klasa lub grupa klas przyczynia się do realizacji określonego celu, należy dążyć do jak największej zwartości. Klasy (lub grupy klas) powinny być skupione na realizacji określonego celu - zazwyczaj jednego. Klasa, która realizuje kilka różnych zadań ma słabą zwartość.

Sprzężenie-Miara, jak dwie lub więcej klas jest od siebie wzajemnie zależnych. Należy dążyć do jak najmniejszego sprzężenia między obiektami lub grupami obiektów. Obiekty powinny być od siebie zależne tylko w minimalnym zakresie niezbędnym do realizacji określonych zdań. Jeśli zależność (liczne połączenia) między klasami jest duża, trudno o dobre ponowne wykorzystanie kodu.

Instancja klasy-egzemplarz, wystąpienie klasy obiektów. Instancja klasy zwana jest również egzemplarzem, wystąpieniem obiektu. Instancja klasy w programie, to zmienna typu obiektowego

Obiektowe języki programowania (OPL)-podstawową jednostką syntaktyczną jest klasa obiektów:Simula 67,Smalltalk,Java. Języki programowania zorientowane obiektowo (OOPL) - podstawową jednostką syntaktyczną jest moduł (program, unit, package), w którym umieszczane są definicje klas, obiektów:Borland Pascal (+Turbo Vision),TopSpeed Pascal, Modula2, C++,ModSim II,Turbo Pascal 4 Windows, Delphi Pascal, C++,Visual C++, Basic.



Wyszukiwarka

Podobne podstrony:
Ściąga - PO, materiał♫y z pedagogiki
ściąga, PO II WOJNIE ŚWIATOWEJ
ściąga po
ściąga po poprawkach metrologia na kolosa
Ściąga - PO, materiał♫y z pedagogiki
ŚCIĄGA Z PO
historia sciaga po I wś
Ściąga PO
PO ściąga
Mikroekonomia - Sciaga (5 stron po 3 kolumny), Zarządzanie UMK, I rok, Mikroekonomia
Infrastruktura Techniczna Obszarów Wiejskich - Ściąga, Infrastruktura, służba komunalna (łac infra =
Metalurgia, odlewnictwo-sciaga, Etapy procesu metalurgicznego: wstępna przeróbka rudy, po której otr

więcej podobnych podstron