
オブジェクトの依存関係を考察する
オブジェクトを直接インスタンス化すると、その具象クラスに依存
することになります。
1
ページ前の非常に依存関係の多い
PizzaStore
を見てみましょう。このクラスは、ファクトリに委譲するのではなく
PizzaStore
クラスの中ですべてのピザオブジェクトを直接作成してい
ます。
このバージョンの
PizzaStore
と
PizzaStore
が依存するすべてのオブ
ジェクトを表す図を描くと、以下のようになります。
P
i
z
z
a
S
t
o
r
e
これらのクラスの実装が変わると、
PizzaStore
内で変更する必要があ
るでしょう。
N
Y
S
t
y
l
e
V
e
g
g
i
e
P
i
z
z
a
N
Y
S
t
y
l
e
C
l
a
m
P
i
z
z
a
N
Y
S
t
y
l
e
P
e
p
p
e
r
o
n
i
P
i
z
z
a
C
h
i
c
a
g
o
S
t
y
l
e
P
e
p
p
e
r
o
n
i
P
i
z
z
a
C
h
i
c
a
g
o
S
t
y
l
e
C
h
e
e
s
e
P
i
z
z
a
C
h
i
c
a
g
o
S
t
y
l
e
V
e
g
g
i
e
P
i
z
z
a
C
h
i
c
a
g
o
S
t
y
l
e
C
l
a
m
P
i
z
z
a
N
Y
S
t
y
l
e
C
h
e
e
s
e
P
i
z
z
a
ピザの具象実装に対するあらゆる変更が
PizzaStore
に影響を及ぼすため、
PizzaStore
はピザ実装に「依存する」と言えます。
新しい種類のピザを追加するた
びに、
PizzaStore
に新たな依
存関係が生まれます。
このバージョンの
PizzaStore
は、
すべてのビザオブジェクトを直接
作成しているため、すべてのピザ
オブジェクトに依存します。
138
4
章
オブジェクトの依存関係