Professional Documents
Culture Documents
D<
< I
I:
DE
DE!IIGN
GN
PA" "EN!
I2018-1.1
DEMO VERSION
A F= %+ C?/:
"<! 'L @ <F AK IGF. #Q@
G HG G > D(5$ I3 D$-
2(& P33$2 G
G
<
<
H
HF
F
D(5$ I3 R$%"3(& .
A WG @ G F @L >F HFF <F FG
G I@G R$%"3(&.G44. E L F F G
=G <@@FL <F G @@G J > -
F <GG <G F.
"() - C::
"() - C:
C::
: ...............................................................................
.......................................................................................
........ 4
C*; .....
C*; ...........
............
...........
...........
............
...........
...........
............
............
............
...........
...........
............
...........
...........
.........
... 406
6 "J
"J G
G
G<F
<F
>
>
'L GGF G, F LH F<L =H@ @ G<
G G< HF< H@HF F. G F
<FG <>F GJ G HG GG GF. # LH
F G @ GG GG LH IQG F LG, =HFG >
<OG<F <G@ J< < G KG GF.
B(* - OOP
&)'8-o6)28)( p6+6%112+ <F <@ F G -
O &)'8-
G J< <F G, I< G G GG
G, <G F< HF !)$"32, J< FGHG-
@ FG RH<GFS, W L @@,
"+22$2.
O)*:, *(
D LH <> GF? # LH HF #Q GL G K< G
* GF HF< I<HF G K@F.
A GF F I F<@<L: GL G, G, H, F
@J. F G FFQF 1)8(7. CG<IL, WF
@GF F G 1)1&)67 G< FF.
O&)'87
O&)'87 %6) 278%2')
278%2')77 * '%77
'%77)7.
)7.
10 #GH
#GHG<
G<
G * / BF
BF<F
<F *
&H, LH <QF G, <F F <FG G Cat FF.
#G F G F@ FG GG<HGF F F. < <F <
IHF GF GG<HGF: FK <F @, F F <-
G , J<F FF.
C( /(*/
EILG< W L J J G> HG FF. G-
EILG<
HL, @ G<F @ G F< FF. @
GF FFF @<G <M <G "+
"+22
22 '($
'($
"'($2. &GQF
"'($2
W HG JG GG @F.
L LH < F <. #G GHF HG, F
GF I G < @@: @, FK, , G-
G<HGF G F GF. DF G, F
H G F@ JL GF . <G F@F GG J W G
F Animal FF GG JH
JH <FG G @@
@@ GG<HGF
I<F.
A G FF, <> G JQI =HFG W, <F 24-
$"+22. #GF < 24!"+22$2. HFFF <<G FGG
I< @ G< G, W< L GG<HGF -
I<F GG <. HF, G Cat FF JH
JH I
I G
G meow
@G, G Dog FF G bark @G.
11 #GH
#GHG<
G<
G * / BF
BF<F
<F *
ML (%+6%1 * % '%77 )6%6'=. A '%77)7 2 87 (%+6%1 %6) 4%68 *
8) Animal '%
'%77
77 )
)6%6
6%6'=
'=..
C%77)7 2 % ML (%+6%1 '%2 &) 714)( * 8@7 16) 1468%28 8 7;
8)6 6)%82
6)%8277 8%2 8)6 '2
'28)287
8)287..
F(:;
F(:; - G+ D
B J G G GH GGF, GQF <FHFF G
FF F<< FGJ <GGH: G<F G <@
G<F LHQ GG I<.
C+ ;
CFG G<@ GJ G @FG IH @G<F J
I< L FGJ HG. &FF G<@ < I@G
@F G< G @>G
@ >G < G @G<GF. &J -
I@G FGF @ @ @L <F G @>G<
G GG< HFG@F.
C#
#$
$ $
$42$ <F G @FG @@ JLF G H I-
42$
@G FGF. <GG <F GGL I<HF: <FG I-
< F@G< I I @ FG, JL QG J HF
K<FG< < J =GF?
< >F G , HG <G GHF HG GG @>< K-
<FG< J> < J GKG HFHL G>F KG G.
<G H< GJ @GF, <F -
G FFF <FG <GF, G<FO
G<F HF XK<<<GL G @>F <G G
HF <G.
1. E< @@
@@ K
K<<
<<<GL
<GL +HF: '332://$%"3(&.&44/
&,,-(3$5($6
32 GH
GHF
F
DF
DF<
< / EKG
EKGF
F<<
<<<GL
<GL
F <F @< I. <F <F J # F GGF. D-
F< GGF G F@ @ FGG G @-
J>F. LQ L F<G< HG J H
FFF G G <GG J<G G. I
HF <FF J LH @I @ FFF G GGF
WL @J>F.
G <F < HG G<F @< L <F GG GGF
HF < JL GG <F FF <F>L G @J>F. BH<<
@J> <F <-<F> F<<WG <IFG@G. *GGF
G LH HF F< <F GF <GL -
G .
T
E>:):?
C'&$ <F G L FGG G< < @@QF <.
U H
F
F
I<
I<
@
@
<
<J
JF,
F, HG
HG J
J
F>
F>
@ IF<.
U H
G
G # @
@J
J>
> J<G
J<G
FH
FH
HGG
HGGF,
F, HG FI
FI
@GF G H HGGF @ G.
U H F<
F<
<
<<
<GG -
-@@
@@
J
JF<G
F<G
<G
<GGH
GH,
, HG
=HFG @G G HFG@F F> GH GG JH G
G@ G F.
G< F <F GG G FGF @I. H <G JF
<G J<G G HG IF< G <G
<G<,
<, HG J
FF I R<GGS F Q <> F <G G G<F
I @G< < G << < FFF<F. F
QG <IHF F: LH KG WFG IF< F FJ
<@ GG I @ <F FF<.
D P*
G <F FGJ F<? "J JH LH @FH <G?
G G<F JH LH G J G <I <G? "J
LH @> LH <GGH XK<, FG FL G H-
FG?
@< G<F << <F G @<<@<M G G HF
L F.
#@< GG LH @ <F F<, F <HF
@<
@<FF G
GG
G <
<
H
H
J
JGG
.. G
GH
H>
> L G
G
@<
@<
,, G
G
F< F<>F.
%J< G<F, LH <I< G F<QF H <G <G
@G@GF GG FL F G <@<G @ G
F< @G@G. J, < G F< <GF @<, G F< F
J @<F XG.
# G F@ JL, LH <FG G GF G @ GG
IL < <G @HF, GG< G FG G
@ IF GF. AF FHG, LH F FF G<@ GG<
G @ > <G J>< F, <@@G<
<@@G< GFG-
< G F. FF G<@ LH F @>< F, G
@ G<@ LH I <@@G< GHF.
36 DF<
DF< *
*<<
<<FF / EF
EFHG
HG G
<F
<F
1 method getOrderTotal(
getOrderTotal (order
order)) is
2 tota
total
l = 0
3 foreach item
item in orde
order.li
r.lineIt
neItems
ems
4 total
total += ite
item.p
m.pric
rice
e * ite
item.q
m.quan
uantit
tity
y
5
6 if (orde
order.co
r.country
untry == "US")
"US")
7 tota
total
l += to
tota
tal
l * 0.
0.07
07 // US sal
ales
es tax
8 else
else if (orde
order.co
r.countr
untry
y == "EU")
"EU"):
9 tota
total
l += to
tota
tal
l * 0.
0.20
20 // Eu
Euro
rope
pean
an VA
VAT
T
10
11 return total
H
KG
KG
G
G G
G G
GK
K
H
HG
G<
<
<
< <
<G
G F
F
G
G
@G, << <G @ G << @G.
37 DF<
DF< *
*<<
<<FF / EF
EFHG
HG G
<F
<F
1 method getOrderTotal(
getOrderTotal (order
order)) is
2 tota
total
l = 0
3 foreach item
item in orde
order.li
r.lineIt
neItems
ems
4 total
total += ite
item.p
m.pric
rice
e * ite
item.q
m.quan
uantit
tity
y
5
6 tota
total
l += to
tota
tal
l * ge
getT
tTax
axRa
Rate
te((order.country
order.country))
7
8 return total
9
10 method getTaxRate(
getTaxRate (country
country)) is
11 if (cou
countr
ntry
y == "US")
"US")
12 return 0.07 // US sal
ale
es ta
tax
x
13 else
else if (cou
countr
ntry
y == "EU")
"EU"):
14 return 0.20 // Eu
Euro
rope
pean
an VA
VAT
T
15 else
16 return 0
F(*:?
M:/+
*I<F <G G< =GF < FHFF, HG -
*I<F
JF FHFFF G G G GL =GF GG J< G.
A):(*:
F(*:?
&GF LH H @<<F G =GF J<GHG F<L<
G< G FFF.
70 CG
CG<
< DF
DF<
< *GG
GG
FF
B;+
&GF LH FGHG @K =GF FG L FG. GG -
JF LH G H <G GLF FGG<F -
=G HF< G F@ FGHG< .
P::?
&GF LH L K<FG< =GF J<GHG @>< LH -
G G< FFF.
!:
&GF LH FH GG FF F L <FG, J< I<-
< FF <G G G<F <FG.
71 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
FAC"O' ME"HOD
A7 2;2 %7: !689% C27869'86
F"3
F"3
8
8 M$
M$3'# <F G< F< GG GG I<F
3'#
<G G< =GF < FHFF, HG JF
FHFFF G G G GL =GF GG J< G.
72 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
P)
#@< GG LHQ G< <FG<F @@G <-
G<. WFG IF< LH L GF-
GG< L GH>F, F G H> LH <IF <F< G
Truck FF.
AG J<, LH @F GGL H. E L LH
<I MF HFGF @ F GFGG< @<F
G <G F <FG<F <G G .
G JF, <G? BHG J HG G ? AG FG, @FG
LH <F H G G Truck FF. A< Ships <G
G JH H< @>< F G G G< F.
'I,, < G LH < G G GL GF
'I G FG-
G-
G< G G , LH J< L G @> GF
F <.
73 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
!;:
GL 'G GG FHFGF GG LH <G
=G FGHG< F (HF< G new G) J<G F
G F< *%'86= @G.
@G. DQG JL: G =GF FG<
G I< G new G, HG <GQF
<GQF < @ J<G<
G GL @G. =GF GH L GL @G
G G F RHGF.
HGF.SS
S9&'%77)7 '%2 %8)6 8) '%77 * &)'87 &)2+ 6)8962)( &= 8)
*%'86= 1)8(.
GG HFF G GL @G (G G ')28
) FQG F < GJ G GH HGF -
GH L I<HF FHFFF. <G GGF G HGF
F FGG Transport .
75 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
!:;*:;
76 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
2. C"
"$3
$3$
$ P#4"322 <G <@@GG<F G -
#4"3
HG <G.
G, F<G <GF @, HG G< <F 3 G <@L -
FF<<<GL G G. FHL, G G FF L
F F@ HF<FF < G G HGF. GL
@G F G H G<F < @ G G -
HG FFF. " <F L: FGJ I@G
@L I G<< G@G @@F.
"JI, G <@L HG< G @L F J <F
FG< J<G< , G H< @@F.
4. C"
"$3
$3$
$ C$
C$32 I< G F GL @G F <G -
32
GHF <G GL HG.
77 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
G GG G GL @G FQG I G "$3$ J <-
FGF G G<@. #G F GH K<FG< =GF @
, =G , G FH.
P;+*+
<F K@ <HFGGF J G F F"3
"3
8
8 M$
M$3'# HF
3'#
G< FF-G@ # @GF J<GHG H< G
<G G G # FFF.
T) '677-4%8*
'677-4%8*61
61 (%+ )<
)<%14
%14).
).
78 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
G GL @G @F <G L, LH QG G
J<G G < G < G< FLFG@. #
J GL @G GG HF HGGF <F< G
F < FF, J G G < FHFF GG
GHF <JF-FGL
<JF-FGL HGGF @ G GL @G.
FHFF G <<GF @FG G <QF @ G F
FF, HG, G>F G G GL @G, <JF-
>< HGGF G F.
G<F GG G J>, G F < FF @HFG J> J<G
FGG HGGF: F FF <G GG G
HGGF J. <F JL G <QF @<F HG<,
J<I GL HGGF <G J>F J<G.
1 // Th
The
e cr
crea
eato
tor
r cl
clas
ass
s de
decl
clar
ares
es th
the
e fa
fact
ctor
ory
y me
meth
thod
od th
that
at mu
must
st
2 // re
retu
turn
rn an ob
obje
ject
ct of a pr
prod
oduc
uct
t cl
clas
ass.
s. Th
The
e cr
crea
eato
tor'
r's
s su
subc
bcla
lass
sses
es
3 // us
usua
uall
lly
y pr
prov
ovid
ide
e th
the
e im
impl
plem
emen
enta
tati
tion
on of th
this
is me
meth
thod
od.
.
4 class Dialog is
5 // Th
The
e cr
crea
eato
tor
r ma
may
y al
also
so pr
prov
ovid
ide
e so
some
me de
defa
faul
ult
t im
impl
plem
emen
enta
tati
tion
on
6 // of th
the
e fa
fact
ctor
ory
y me
meth
thod
od.
.
7 abstract
abstract method
method createButton()
createButton ()
8
9 // No
Note
te th
that
at,
, de
desp
spit
ite
e it
its
s na
name
me,
, th
the
e cr
crea
eato
tor'
r's
s pr
prim
imar
ary
y
10 // res
respon
ponsib
sibili
ility
ty isn
isn't
't cre
creati
ating
ng pro
produc
ducts.
ts. It usu
usuall
ally
y
79 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
11 // co
cont
ntai
ains
ns so
some
me co
core
re bu
busi
sine
ness
ss lo
logi
gic
c th
that
at re
reli
lies
es on pr
prod
oduc
uct
t
12 // ob
obje
ject
cts
s re
retu
turn
rned
ed by th
the
e fa
fact
ctor
ory
y me
meth
thod
od.
. Su
Subc
bcla
lass
sses
es ca
can
n
13 // in
indi
dire
rect
ctly
ly ch
chan
ange
ge th
that
at bu
busi
sine
ness
ss lo
logi
gic
c by ov
over
erri
ridi
ding
ng th
the
e
14 // fa
fact
ctor
ory
y me
meth
thod
od an
and
d re
retu
turn
rnin
ing
g a di
diff
ffer
eren
ent
t ty
type
pe of pr
prod
oduc
uct
t
15 // fr
from
om it
it.
.
16 method renderWindow()
renderWindow () is
17 // Ca
Call
ll th
the
e fa
fact
ctor
ory
y me
meth
thod
od to cr
crea
eate
te a pr
prod
oduc
uct
t ob
obje
ject
ct.
.
18 Button
Button okB
okButt
utton
on = cre
create
ateBut
Button
ton()
()
19 // No
Now
w us
use
e th
the
e pr
prod
oduc
uct.
t.
20 okButton.onClick(
okButton.onClick (closeDialog
closeDialog))
21 okButton.render()
okButton.render()
22
23
24 // Co
Conc
ncre
rete
te cr
crea
eato
tors
rs ov
over
erri
ride
de th
the
e fa
fact
ctor
ory
y me
meth
thod
od to ch
chan
ange
ge th
the
e
25 // res
result
ulting
ing pro
produc
duct's
t's typ
type.
e.
26 class WindowsDialog extends Dialog is
27 method createButton()
createButton () is
28 return
return new WindowsButton()
WindowsButton ()
29
30 class WebDialog extends Dialog is
31 method createButton()
createButton () is
32 return
return new HTMLButton()
HTMLButton ()
33
34
35 // Th
The
e pr
prod
oduc
uct
t in
inte
terf
rfac
ace
e de
decl
clar
ares
es th
the
e op
oper
erat
atio
ions
ns th
that
at al
all
l
36 // con
concre
crete
te pro
produc
ducts
ts mus
must
t imp
implem
lement
ent.
.
37 interface Button is
38 method render()
render()
39 method onClick(
onClick(f)
40
41 // Con
Concre
crete
te pro
produc
ducts
ts pro
provid
vide
e var
variou
ious
s imp
implem
lement
entati
ations
ons of the
42 // pro
produc
duct
t int
interf
erface
ace.
.
80 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
75 method main()
main() is
76 dialog.initialize()
dialog.initialize()
77 dialog.render()
dialog.render()
A*():?
U2$ 3'$ F"38 M$3'# 6'$ 84 #;3 *6 !$%$'# 3'$
$7"3 38$2 # #$$#$"($2 % 3'$ !)$
)$""32 84
4 "#$ 2'
'4
4+ #
6* 6(3'.
K@, G J HG GL G G , LHQ L
G G J G FHFF I< G GL
@G < <G.
U2$ 3'$ F"38 M$3'# 6'$ 84 63 3 5(#$ 42$2 %
84 +(!8 %,$6* 6(3' 68 3 $73$# (32 (3$+
",$32.
&GQF F J GG JH J>. #@< GG LH J<G
HF< FH # @J>. H FH
I H HGGF, HG G @J> L I<F FH
F. H KG G FG Button
FF
FF J<G <H
<HFF
RoundButton FH
FH
FF.
FF. BHG J LH G GG
G @
@<
<
UIFramework FF G HF G J HGG
HGG FHFF
FHFF <FG
HG .
U2$ 3'$ F"38 M$3'# 6'$ 84 63 3 25$ 2823$, $-
24
24""$2 !8 $
$42
42((& $7(
7(223(
3(&
& !
!)$
)$"3
"322 (
(23
23$
$#
# % $
$!4
!4((+#
+#(
(&
& 3'
3'$,
$,
$"'
$"' 3(
3(,$
,$..
H G K< G<F J < J<G , -
FH-<GF<I =GF FH F GF G<F, W
FLFG@F, GJ> FHF.
83 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
1. <FG, LH
LH
G
G G
G F@ FG
FG
G >
> G
G>>
G G =GF.
2. F@
F@
H
HFG
FGFF =
=G,
G, G
@
@ FH
FH
>>
=G <F< GG .
3. V G GH
GH
<G G G <
<G
G
.
.
4. # G
G
=
=GF,
GF, G
@
@ FH
FH
G
G
J
( <G G G ).
GQF G ! A <G @HFG HG <G F<
F GG LH QG HG G @ J<G H<G .
H= : I:
1. '> H
'> HGF
GF
J
J G F@ <G
<G
.
. <F <G
<G
FH @GF GG @> FF < IL HG.
84 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
2. A @GL
@GL G
GL
L @G
@G
<F<
<F<
G
G
G F
FF.
F.
-
-
GH GL G @G FH @G G @@ HG
<G.
AG G<F <G, G G GL @G @L > G-
GL HL. #G @L I switch G GG <>F
<>F J<
HG FF G <FGG<G. BHG QG JL, JQ WK <G F
H.
4. J, G
J, G FG
G
G FH
FHFF
FFF
F
GL
GL -
-
HG <FG < G GL @G. I< G GL @G
< G FHFFF KGG G <G <GF FGH-
G< @ G F @G.
5. # G
G
G
G @L
@L
HG
HG GLF
GLF <G F
FQG
QG @>
@> FF
G G FHFFF G@, LH HF G G
@G @ G F FF < FHFFF.
Truck Train . < G AirMail FF L HFF Plane
=GF, GroundMail @L J>
J> J<G G Truck Train
=GF. H G J FHFF (FL TrainMail ) G
G FF, HG GQF
GQF G G<. <G
FF H@G G G GL @G G
GroundMail FF G G J< HG <G JGF G <I.
<I.
6. #, G
G
G KG
KGG<F,
G<F, G F GL @G F -
@ @GL,
@GL, LH @> <G FGG.
FGG . # GQF F@G< G,
LH @> <G HG I< G @G.
@L @ @ @<G F< LH G <-
GH G J FHFFF G <@@G G GG.
FG F F
F<
< <F J LHQ
LHQ <GH< G GG <G
K<FG< <L G FFF.
86 CG<
CG< DF<
DF<
*
*GG
GGF
F / G
GL
L 'G
U A!23
A!23
"3
"3 F
F"3
"38 FFF
8 FFF G F FG F"3-
8 M$3'#2, HG LH F HF P338$ G @F G
@GF GF FFF.
U F"3
F"3
8
8 M$
M$3'# <F F<<MG< T$,+
3'# 3$ M$3'#. AG G
$,+3$
F@ G<@, F%'
F%'86
86== M)8( @L
@L FI F FG < T)1-
M)8(
4%8) M)8( .
320 pages