Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ООПИС Конспект(слайды) лекций 2007

.pdf
Скачиваний:
44
Добавлен:
15.06.2014
Размер:
3.08 Mб
Скачать

5

-# +$) (# )# & ' ' * & '$"$%-'$'- $) #( #' )

-# # 6 #$) # % +(

3 # '$# % 78 9:9 +$ $# %

; : : < & ) ('$(

= #(-# ($) & '$"$

>5 & '$?@@>5 ?

A$' '$& #$#$# % 0 + # ( '$ >> 8 9:78??

18.06.2007

!" #$% & '$'# ($) '$# *

' "$* $+($

&' ,"$ -' ./ ' * $# 0'#1

2 ' '#$1 3

3 +$ $# ' & # ' #-'$

# # * +4'$" './ *# '

$+($" &' ,$# 0'# +4'$

( *

B '$' '$&

 

B '$' '$&

 

 

 

1

C$+($

:: ;D:9 '- $' )# *$'$" & ./ #-'$

# 6'# %"$' ($& #$)$' )# ' +4'$E$1

FG ; :HI FJI 8 9 F@ :HK9I F D : K :HI FL 9M D :I

FNK 7K9 :HO : 8 PI

A QRQ + # 6 '$ $+($+$).

$ $& +/'$( % KD; "

A QSQ O / /'## % K 7:9 :9 "

A QOQ O $% K G :9

T$# 0'# '$

+/' (6 '

( '$#'$' ' #$6' '$# 0'# ' '-( ( E ' '#$' (

#-'$ $* E ' '#$"$'#'

'$ $# 0'# ' , , " + +/'#

' , 1

T$# 0'# '$& ) ('$ $%

$( , " #'$' '#'# ' #

E ' '#$'

($#' E ' '#$'

T&' ,

7K9 : 78 O E$' " & '$' %

-E ' & +4'$&

$'+ # . * '#$" 6'$'$*

($ $(&$) ( ' +4'$"$6 '

E ' & ## 1

FG ; :HI 8 9 F K 9:9 O : I FNK 7K9 :HO : 8 PI

& '$@

F 9 : 78I 8 9 @ :HK9 F D : K :HI FL 9M D :OG D9I

T$# 0'# '$

18.06.2007

T$# 0'# '-(

T$# 0'# '$9K98 98 H 9 : 78 U K

T$# 0'# ' , , 7 : 78 9 : 78 U K

T$# 0'# ' + +/'# 989 V : 78 9 : 78 U K

T$# 0'# ' ' , 9 V : 78 9 : 78 U K

T$# 0'# '$

O (- $+ # 6'#$($ $ $*$+($&' , % O$6# O

'#$W

!"# O O '#$ -'$& )$) #'$%

0 + # '% & ' (./'% & '$, W

#$!% O $+($O '#$($+$) 6 '# &$+($O$6# W

!&'($) O $ $'$+($&' , O

$6#$#$6$). O '#$" ' + # + +4 '# #'& '$'## #' W

$*!" O ( '$" 6$O '#$(- $($6#'# '

O$6# ( & 6 #$6' *$' "

& '$& #$' )# #X , * ' +$# & '$1

+ ,

2

18.06.2007

 

T$# 0'# ' , ,

 

Y ,$)

 

 

3 X$

• $'$ $('$# 6 .

 

 

 

3 " # +4'$# # #,' , , "

 

#'$ $# 0'# '-(

 

 

 

 

-# & ' '$) +4'$(&&( +4'$#

 

 

 

 

 

 

( '' #,'[

Y ,

 

 

 

= # # #,' , ,-#

Z$)

 

 

 

 

& '$ $) & (.$($( ( ## *

 

 

 

 

# & ' " *E0O$+ ,( O ' ' "$

3 X$

 

 

 

 

 

 

 

 

+4 %$' # ' " &$( &$

 

 

 

 

 

3 O , ,

 

 

 

 

& " X$1

 

 

 

 

 

 

 

B ' X$

 

 

3 O , ,

 

 

T$# 0'# ' ' ,

 

 

Z , , '-( (

 

''$'$'-(

 

 

 

, ,$ -'-'$'$) %$

 

 

#' )$(6 '" ' #

 

 

 

 

 

 

& '$'$+ % #'$(. (/#$)"

 

 

 

 

 

 

.6 ./(. '+ 6'$'$# * 6$'%

 

 

 

 

 

 

( ' (/#$1

class Order ...

 

 

 

 

T$# 0'# '$& Q6$)O,' 'Q

 

 

 

 

 

 

public OrderLine getLineItem(Product aProduct);

 

 

 

 

 

 

public void addLineItem(Number amount, Product forProduct);

 

 

 

 

 

 

 

 

 

 

 

 

 

3

18.06.2007

T$# 0'# ' ' ,

T$# 0'# ' & ,

T$# 0'# ' & ,

\$# % (6 %$# 0'# ' ,

A$./ ' 6$]#'$'^

# *$#($,'

\$#' ($ $(&$)$'$,' "$1 '1 (# 6$ -'# ' ,' (# 6$ -.$' '

$# ' 6$

T$# 0'# ' + +/'#

 

T$# 0'# ' + +/'#

 

2 ' '#$1 5#$' X'%

• T$# 0'# ' + +/'# < $# 0'# ' '-( + ''

 

 

 

-. / _8:9 M 9 # '$# +

+/ E ' '#$ $' ' & '

 

 

 

&' , %" & ) (' % &', X , #

+ '' 6$# &', )# E ' '#$

 

 

 

( ( " & '$' * & #'#$

6' # &$

 

 

 

 

 

 

 

 

 

4

18.06.2007

T$# 0'# ' ' ,

0 / `9 V : 78 # '$

' #$6' '$# 0'# ' '-(

X$" &$# # *

& '$#$ $" ( % #$('$' & #'# '

A' #$6' ' , O E$#'6$' #''

'-( + +/'# '$).

B '$## %

B '$## % K 9: V9

& ' # # 6'# + # 6'#$"

$% ''$# + '' #'X ## %

X )# % & '$1

B '$## %

2 ' '#$1 T+4'$

+4'$

T+4'$7;a9 : '$ $' )# E ' &

T# ''$' +$'## ' # '$# ' # 6'#$+($1

5

 

18.06.2007

2$#

% 6' " ( ) ! ( #," 4 # / ! * 04 * !(- #,5 " ( 4 ,$

' 7 % 6' # ! #," # " 1 #$

8 % 6' # " 0# " #,1 0$

6 % 9 7 #," *+ ! " ( " ( 4 ! , *4- " #$

! " #

$

%& '

" ( ) ! ( " # *+ ! #

) " # ! , " ,#-!(-*+ ! # . *, #," *+ !

# !/ 0 ,1

# #$

2$3

4 # 4 ( # 1 / 0 ( ! *+ ! # 5 ! 4 # # 5 ! 4 4 #- #," " 4-

/ *,$

: #

:

 

; < 6 # . # ! 5 # ! ) 4 *

" #$

0 # " # * 0 5-= 5 #," " ( 0 ! 5 # 1 /

4 *+ ! # #$

> ' ? 0 # " # * 0 5-= " ! = " ( 0 ! 5 # 1 /

4 *+ ! # #$

1

 

18.06.2007

3 #

 

:

 

: , "

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

– ! " # $ ! %&&

 

 

– # ! # $$ '()(

 

 

 

 

 

 

 

 

 

– !

 

 

 

! $ * +

 

 

 

– ,-./0123.

 

 

 

– 45627(82 9(8237:

 

 

 

 

 

T * U

 

 

 

V Q W "

• M ;16-/. <(2217.6 2>711 8(21/37-16

 

 

 

X$"

 

 

 

 

 

 

 

 

 

 

 

Y ! !$! " U

 

Creational

Structural

Behavioral

 

 

 

 

 

 

 

 

 

 

 

 

• X* Q$ $

 

Abstract Factory

Adapter

Chain of

Observer

 

 

 

 

 

 

 

 

Responsibility

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Builder

Bridge

Command

State

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Factory Method

Composite

Interpreter

Strategy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Prototype

Decorator

Iterator

Template Method

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Singleton

Facade

Mediator

Visitor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Flyweight

Memento

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Proxy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

;16-/. <(2217.6

;16-/. <(2217.6 5: =7-8> ?(@@( A-8>(7B C10@ A(0D> '3>.63. (.B '3>. E0-66-B16 F.3G. (6 H?(./ 3I JK 37 H?L9K

M D(2217.6 %71(2-3.(0 ,27N82N7(0 O1>()-37(0

P Q

83.2730 2>1 83.627N82-3. 3I 35R1826

871(21 37/(.-S1B 8300182-3.6 3I 35R1826

B-)-B1 716D3.6-5-0-2-16 (@3./ 35R1826 I37 512217 1.8(D6N0(2-3. (.B 1(6-17 @3B-I-8(2-3.

$Z

V Q

[$Z #$ $ $#$

$ \ ] !$# $\

^$$\

$

_$

T Q$ $"$ ^$#$

] #

$Z

[$"

$ $] $" * $ +$!+$ $+$ \ W ^ `

\ W$#$ $ ^

]$" "$ $`

$ $] Z *! "$

$#$ $ $+W \ ^ `

\$" ! ^

$" \ Z #$

+

$Z

class AbstractFactory

AbstractFactory

+ CreateProductA()

+ CreateProductB()

AbstractProductA

Client

ProductA2

ProductA1

 

ConcreteFactory1

 

ConcreteFactory2

 

 

 

AbstractProductB

+

CreateProductA()

+

CreateProductA()

+

CreateProductB()

+

CreateProductB()

ProductB2

ProductB1

X Q

V Q

a ! Q !$$ $" "

b $! * " !+

Q !$!

_$

• c Q # b $$

 

X Q

 

X Q

 

 

 

[$"

 

 

 

 

 

 

 

 

 

V Q

] " b *

 

 

 

 

 

 

 

 

 

! ! Z #$*

 

$$*$! #$`

 

 

 

 

 

 

 

 

 

 

$$Z #$!* * # ] +

 

 

 

class Singleton

 

 

 

$# b ]$U "$

 

 

 

 

 

 

 

 

 

 

`

 

 

 

 

 

 

 

 

 

 

 

 

 

Singleton

 

 

 

 

 

! ]$d$

 

 

 

-

singletonData

 

 

 

$Q$ $!+ !$$ $

 

 

 

 

-

uniqueInstance

 

 

 

 

!] " ]$" "$

 

 

 

+ GetSingletonData()

 

 

 

 

$ $Z #$

 

 

 

 

+ Instance()

 

 

 

 

 

$U b d Z

 

 

 

 

return uniqueInstance

 

 

 

 

 

 

 

 

 

+ SingletonOperation()

 

 

 

_$

 

 

 

 

 

 

 

 

 

 

 

 

$*

 

 

 

 

 

 

 

 

 

Z #$^ !

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[$"

$ $Z #$ $!W$!+W *

$$ $`

$ $$# !

#$"$ $$+W

$ $Z #$`

$" $" \$!W$!+W \

$$Q " \ Z #$ ! ] \$$] *

^ ]$ $" Z #$ \ W * "$*$$

 

 

class Adapter

 

 

Client

Target

Adaptee

 

+ Request()

+ SpecificRequest()

 

 

-adaptee

Adapter

+Request()

adaptee->SpecificRequest()

$

V Q

X$+ *

Q !$ ]$" $

" !*

_$

• e ^

$

$

 

class Bridge

 

 

 

 

Abstraction

-imp

Implementor

Client

+ Operation()

+

Operati onImp()

 

imp->Operation();

 

 

RefinedAbstraction

ConcreteImplementorA

 

ConcreteImplementorB

+ OperationImp()

 

+ OperationImp()

 

 

 

V Q

f Q$^ !

$

_$

X $" ^$]

$$

M