5 Istota Modelu obiektowego PPT

background image

Programowanie Obiektowe

(c) W

2

Model Obiektowy

Model Obiektowy

background image

Programowanie Obiektowe

(c) W

2

Koszty

Koszty

oprogramowa-nia

oprogramowa-nia

vs

vs

wyniki

wyniki

$3.2 M

$2.0M

$1.3M

2%

29%

19%

3%

47%

używane

bez zmian

dostarczone ale

nieużywane

zapłacone ale

niedostarczone

zaniechane lub

przerobione

używane po

przeróbkach

background image

Programowanie Obiektowe

(c) W

2

Programowanie

Programowanie

Obiektowe

Obiektowe

Nie tyle technika kodowania, co technika pakowania.
Stosowany przez producenta oprogramowania sposób
ukrycia większości aspektów funkcjonalnych przed
konsumentem.

Różnica między podejściem klasycznym i
obiektowym:
Zwiększony nacisk na powiązania producenta i
konsumenta oprogramowania.

background image

Programowanie Obiektowe

(c) W

2

Budowanie

Budowanie

programów

programów

vs

vs

budowanie systemów

budowanie systemów

Programowanie
konwencjonalne

Programowanie
obiektowe

Narzędzia do programowania konwencjonalnego uwypuklają związek
pomiędzy programistą i jego kodem,
a do programowania obiektowego - producentem i konsumentem kodu.

Komputer

Producent

Konsument

background image

Programowanie Obiektowe

(c) W

2

Wi

Wi

ą

ą

zanie

zanie

Wiązanie jest procesem integrowania elementów funkcjo-
nalnych różnych producentów przez konsumenta.

Wiązanie jest czymś więcej niż linkowanie:
określanie modułów binarnych, które mają być połączone
w program wykonawczy, przypisywanie im adresów i
zamiana odwołań zewnętrznych na określone miejsca
w pamięci operacyjnej.

Wiązanie jest procesem, w którym operatory i operandy
potencjalnie wielu różnych typów są wydawane przez
producenta i używane przez konsumenta.

background image

Programowanie Obiektowe

(c) W

2

Wi

Wi

ą

ą

zanie

zanie

Producent

Producent

Producent

Producent

Wiązanie

Wiązanie jest procesem łączenia komponentów pochodzących od
różnych producentów (dostawców) w większy komponent, przeka-
zywany konsumentowi.

background image

Programowanie Obiektowe

(c) W

2

Wczesne i pó

Wczesne i pó

ź

ź

ne

ne

wi

wi

ą

ą

zanie

zanie

Wczesne wiązanie jest stosowane w przypadku zamkniętej
przestrzeni
, w której wszystkie potencjalne interakcje pomiędzy
komponentami oprogramowania mogą być zdefiniowane w trak-
cie tworzenia tych komponentów przez kompilator.

Późne wiązanie jest przydatne w przypadku otwartej
przestrzeni
, kiedy komponenty, które mogą współdziałać
są znane dopiero po uruchomieniu programu.

x

y

POCZTA

background image

Programowanie Obiektowe

(c) W

2

Otwarta

Otwarta

vs

vs

zamkni

zamkni

ę

ę

ta

ta

przestrze

przestrze

ń

ń

Przestrzeń zamknięta
- silnik

Przetrzeń otwarta
- bagażnik

Zawartość wcześniej znana Zawartość znana później

FloatingPointNumber: mantissa, exponent

Point: xCoordinate, yCoordinate

Rectangle: originPoint, cornerPoint

Mailbox:

Envelope:

DeskTop:

PaperClip:

background image

Programowanie Obiektowe

(c) W

2

Wi

Wi

ą

ą

zanie w

zanie w

lu

lu

ź

ź

nych

nych

kolekcjach

kolekcjach

Kalendarz

Katalog plików

Koperta

Kiedy Cię nie było

Wydatki

Skrzynka pocztowa

Wiązanie realiz. przez konsumenta

item = NextItemInMailbox();
switch (item->type) {
case ExpenceAccount: expOp();
case Envelope:
case Calendar:
case FileFolder:
case WhileYouWereOut:
default:

Wiązanie realiz. przez produc.

item = naxtItemIn Mailbox();
[item doThis];

Non-reusable
Ścisłe łączenie

Reusable
Luźne łączenie

background image

Programowanie Obiektowe

(c) W

2

Software’owe

Software’owe

uk

uk

ł

ł

ady scalone

ady scalone

Wyzwanie:
Producenci oprogramowania potrzebują technologii
umożliwiającej czerpanie korzyści podobnych do tych,
które niosą elektronikom układy scalone.

Możliwość dostarczania hermetycznych (zamkniętych)
jednostek adresowanych do określonych zastosowań,
ale niezależnych od konkretnych aplikacji.

Układ scalony jest jednostką wielokrotnego wykorzystania
(ang. reusability) -> boom technologiczny

Czy koncepcja Software-IC może wspomóc
tworzenie oprogramowania?

background image

Programowanie Obiektowe

(c) W

2

Punkty widzenia

Punkty widzenia

konsumenta i

konsumenta i

producenta

producenta

color

up

down

moveTo:

go:

heading:

position storeOn:

Producent

color=BLACK
position=10,20
heading=180

Obiekt

Konsument

Identyfikator obiektu

mojePióro

Konsument dostrzega jedynie usługi oferowane przez producenta,
a nie sposób ich implementacji

background image

Programowanie Obiektowe

(c) W

2

Obiekty

Obiekty

Obiekt zawiera prywatne dane i zbiór operacji,
które je przetwarzają.

Operacje są wyzwalane przez przesłanie komuni-
katu do obiektu, mówiącego

co

należy zrobić.

Adresat komunikatu odpowiada na niego:
- wybraniem odpowiedniej operacji,
- wykonaniem operacji,
- przekazaniem sterowania do nadawcy.

background image

Programowanie Obiektowe

(c) W

2

Hermetyczno

Hermetyczno

ść

ść

Obiekt zawiera specyfikację i

implementację;

Specyfikacja jest zbiorem operacji, które

mogą być wykonane na obiekcie;

Implementacja: struktura fizyczna

reprezentująca dane zawarte w obiekcie i

procedury realizujące operacje obiektu

(metody);

Programiści “widzą” zarówno strukturę

fizyczną, jak i procedury;

Klienci (użytkownicy) “widzą” jedynie

interfejs.

Obiekt zawiera specyfikację i

implementację;

Specyfikacja jest zbiorem operacji, które

mogą być wykonane na obiekcie;

Implementacja: struktura fizyczna

reprezentująca dane zawarte w obiekcie i

procedury realizujące operacje obiektu

(metody);

Programiści “widzą” zarówno strukturę

fizyczną, jak i procedury;

Klienci (użytkownicy) “widzą” jedynie

interfejs.

background image

Programowanie Obiektowe

(c) W

2

Obiekt

Obiekt

code

color

down
move

Część wspólna

Pen

Część prywatna

isa = Pen

color = BLACK

position = 10, 20

heading = 180

myPen

Obiekt

myPen

Identyfikator
obiektu

Współdzielone części obiektu opisują cechy wspólne obiektów klasy.
Prywatne części obiektu opisują różnice między obiektami.

background image

Programowanie Obiektowe

(c) W

2

Obiekty i

Obiekty i

komunikaty

komunikaty

Identyfikator obiektu

“Uchwyt” obiektu, dzięki któremu można na obiekcie
manipulować w wyrażeniu. Jest to jedyna legalna operacja
na identyfikatorze.

Wyrażenie

Posiadając identyfikator obiektu można korzystać z jego
usług pisząc odpowiednie wyrażenie.
Jest to zlecenie określające, co obiekt ma zrobić, by móc
oddać sterowanie nadawcy i oczekiwane wyniki.

Przesyłanie komunikatu odpowiada wywołaniu procedury;
różnica polega jedynie na późnym wiązaniu.

background image

Programowanie Obiektowe

(c) W

2

Tworzenie

Tworzenie

wyst

wyst

ą

ą

pie

pie

ń

ń

code

code

color

down

draw

new

delete

instNb

Programowy układ scalony

Wystąpienie utworzone
przez fabrykę

Część
prywatna

Część
wspólna

Część
prywatna

Część
wspólna

Fabryka obiektów
Obiekt budujący inne obiekty

myPen

Pen

color = BLACK
position = 10, 20
heading = 180

Nowe wystąpienie
klasy Pen

background image

Programowanie Obiektowe

(c) W

2

Typy i klasy

Typy i klasy

Obiekty o tej samej naturze należy grupować, a ich wspólne
cechy wydzielić. W ten sposób zbiory obiektów mogą być
opisane przez ich typ
lub klasę.

Ident. natura = ident. struktura i zachowanie

Pojęcie klasy jest różne od pojęcia typu.
Specyfikacja na ogół taka sama.
Klasa ma charakter bardziej dynamiczny:
- fabryka obiektów
- magazyn obiektów.

Nowe obiekty są tworzone za pomocą operacji new klasy.

background image

Programowanie Obiektowe

(c) W

2

Dziedziczenie

Dziedziczenie

zmiennych

zmiennych

Producent

Etap kompilacji

Object

Array: Object {int capacity;}

String: Array

Symbol: String {
unsigned int value; }

Etap uruchomienia

Konsument

Object
instanceSize: 4

Array
instanceSize: 8

String
instanceSize: 8

Symbol
instanceSize: 10

isa

isa

capacity = 0

isa

capacity = 0

value = 0

isa

capacity = 0

mySymbol=[Symbol new]

myString=[String new]

myArray=[Array new]

myObject=[Object new]

background image

Programowanie Obiektowe

(c) W

2

Dziedziczenie

Dziedziczenie

Dziedziczenie jest mechanizmem organizowania, tworze-
nia i stosowania klas wieloktotnego użytku.
Bez dziedziczenia każda klasa byłaby konstruowana
od podstaw.

Wewnętrzna struktura i zachowanie mogą być
dziedziczone.

Dziedziczenie umożliwia konstrukcję nowego oprogramowa-
nia w podobny sposób do definiowania nowych pojęć przez
porównanie ich ze znanymi, np. “zebra jest jak koń, ale ma
paski”.

background image

Programowanie Obiektowe

(c) W

2

Wyst

Wyst

ą

ą

pienie klasy

pienie klasy

Symbol

Symbol

code

code

code

Współdzielone części Symboli

Symbol.o

String.o

Object.o

value

value:

free

size

hash

isEqual:

size

storeOn:

free

isa

capacity

value

prywatna część
każdego Symbolu

mySymbol

Symbol zawiera część prywatną i współdzieloną.
Część współdzielona jest implementowana jako lista elementów.

background image

Programowanie Obiektowe

(c) W

2

Zwierz

Zwierz

ę

ę

ta ZOO

ta ZOO

Bear

Polar

Grizzly

Panda

Ling-ling

Quinn

Dziedziczenie jednokrotne

Bear

Polar

Panda

Ling-ling Quinn

Dziedziczenie wielokrotne

Herbivore

Endangered

Cat

Tiger

Carnivore

ZooAnimal


Document Outline


Wyszukiwarka

Podobne podstrony:
1 3 Istota ZKid 8955 ppt
2 istota zarzadzaniaid 20388 ppt
Odwzorowanie modelu obiektowego na DDL-1, Informatyka, SEMESTR IV, Projektowanie
2 istota zarzadzaniaid 20389 ppt
(12295) istota rynkuid 838 ppt
istota prawa humanitarnego ppt
1 3 istota zagrożeniaid 8968 ppt
1b Istota przedsiębiorstwaid 18676 ppt
1 ISTOTA MARKETINGUid 8551 ppt
20 Tworzenie modelu matematycznego ppt
1 3 Istota ZKid 8955 ppt
2 Istota i zadania rachunkowosci zarzadczejid 19788 ppt
1 Przygotowanie obiektów do działań ratowniczychid 8657 ppt
07 Mapowanie związków pomiędzy obiektami trwałymi(1)id 6894 ppt
2013 03 26 W 7 TRM Przygotowanie obiektu i budowyid 28270 ppt

więcej podobnych podstron