Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
オブジェクト指向のこころ: 第25章 / DESIGN PATTERNS EXPLAINED:...
Search
hideki kinjyo
PRO
March 03, 2022
Programming
0
170
オブジェクト指向のこころ: 第25章 / DESIGN PATTERNS EXPLAINED: chapter-25
会社で「オブジェクト指向のこころ」の読書会をやっています
hideki kinjyo
PRO
March 03, 2022
Tweet
Share
More Decks by hideki kinjyo
See All by hideki kinjyo
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
2
680
色んなオートローダーを覗き見る #phpcon_okinawa
o0h
PRO
5
550
ヒューマンエラーの本を読んだ ~報告会~
o0h
PRO
3
290
みんなでワイワイ「テスト駆動開発」の話をやる会 #techramen24conf
o0h
PRO
3
550
SPLから始める「データ構造」入門
o0h
PRO
7
1.9k
PHPUnit11の新しい仲間たち
o0h
PRO
3
410
単体テストを書かない技術 #phpcon_odawara
o0h
PRO
61
21k
パンフ記事 「初めてのリファクタリング!」 の裏側 #phperkaigi
o0h
PRO
2
170
phpunit/php-code-coverageって何をしてるんだ #phperkaigi
o0h
PRO
3
1.5k
Other Decks in Programming
See All in Programming
Visual StudioのGitHub Copilotでいろいろやってみる
tomokusaba
1
100
AIの力でお手軽Chrome拡張機能作り
taiseiue
0
170
Domain-Driven Transformation
hschwentner
2
1.9k
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
760
バックエンドのためのアプリ内課金入門 (サブスク編)
qnighy
8
1.8k
お前もAI鬼にならないか?👹Bolt & Cursor & Supabase & Vercelで人間をやめるぞ、ジョジョー!👺
taishiyade
7
4.1k
Lottieアニメーションをカスタマイズしてみた
tahia910
0
130
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
150
How mixi2 Uses TiDB for SNS Scalability and Performance
kanmo
38
15k
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
230
GAEログのコスト削減
mot_techtalk
0
120
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Bash Introduction
62gerente
611
210k
Designing Experiences People Love
moore
140
23k
BBQ
matthewcrist
87
9.5k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
KATA
mclloyd
29
14k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Writing Fast Ruby
sferik
628
61k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Transcript
ୈ25ষ σβΠϯύλʔϯͷ͓͞Β͍: ૯ׅͱࠓޙ ՝ਤॻ: ΦϒδΣΫτࢦͷ͜͜Ζ: σβΠϯύλʔϯͱͱʹֶͿ
ΦϒδΣΫτࢦݪଇͷαϚϦ
ΦϒδΣΫτͱɺదͳΛ͏ ͷͰ͋Δ
ʁ • “λεΫΛ࣮ߦ͢Δٛɺ·ͨใΛ͍࣋ͬͯΔٛ” • ҎԼͷ3ͭͷओཁͳؚ߲͕·ΕΔ • ΦϒδΣΫτ͕ߦ͏ಈ࡞ • ΦϒδΣΫτ͕࣋ͭࣝ •
ΦϒδΣΫτ͕ଞʹӨڹΛ༩͑Δओཁͳஅ
ʁ • “Ϋϥε୯ҰͷతΛ࣋ͭͷͩͱߟ͑ͯΈΔͱɺΫϥε ͕͢Δ͜ͱʢΫϥεͷΑΓ۩ମతͳʣɺ͓ͷͣͱͦ ͷతΛՌͨ͢ͷͱͳΓ·͢ɻ” • ΫϥεͷύϒϦοΫϝιουɺ ͷઆ໌ͱͯ͠ղऍͰ͖Δ • ύϒϦοΫΠϯλʔϑΣʔεɺ
ΫϥεͷΛ໌֬ʹड़Δܖॻ
ΦϒδΣΫτͱɺదͳΛ͏ͷͰ͋Δ ߨ ࢣ େֶӃੜ ֶੜ ߨٛΛ͢ΔΑ ߨٛΛड͚ΔΑ ڭࣨΛҠ ಈ͢ΔΑ ࣌ؒ
ׂ Ξϯέʔτ ճऩ͢ΔΑ ߨٛͷ࣌ؒͱ ڭࣨΛࣔ͢Α
ΦϒδΣΫτɺࣗΒʹର͢ΔΛ༗ ͍ͯ͠Δ
Λ͏ͱɺΛ༗͢Δͱ͍͏͜ͱͰ͢ • OOP/OODʮΦϒδΣΫτಉ͕࢜࿈ܞ͋ͬͯ͠ɺγεςϜΛ࡞ Γ্͛Δʯͱ͍͏ൃ • ͋ΒΏΔΦϒδΣΫτʮଞऀ͔Βظ͞ΕΔ݁ՌΛ͞ͳ͍ͱ ͍͚ͳ͍ʂʂʯͱ͍͏ͷ͕େલఏʹͳΔ • ʮѪΒ͍͠খಈΦϒδΣΫτʯΛཁٻͨ͠ͷʹɺʮΞϑϦΧ κΑΓσΧ͍͔ΒՈʹೖΒͳ͍ͶʯͩͱγεςϜ͕ഁ͢Δ
• ՝͞ΕͨΛՌͨ͢ɺͱ͍͏Λཁ͍ͯ͠Δ • 㲈త͕͋Δ͔Βͦ͜ɺΦϒδΣΫτ͕ੜΈग़͞Ε͍ͯΔ
ΦϒδΣΫτɺࣗΒʹର͢ΔΛ༗͍ͯ͠Δ ߨ ࢣ େֶӃੜ ߨٛΛ͢ΔΑ Ξϯέʔ τճऩͨ͠Γ ͳͨ͘͠Γ͢ΔΑ Ξϯέʔτճऩ్த ʹFYJU͢ΔΑ
͜ΕͰࣄޙ݅Λຬͨͤͳ͍ʂ
ΧϓηϧԽͱɺ͋ΒΏΔछྨͷӅṭΛ ҙຯ͍ͯ͠Δ
ΧϓηϧԽ ͳʹɾͳΜͰ • ΧϓηϧԽʮ͋ΒΏΔͷͷӅṭ(P18)ʯ • “ΧϓηϧʢӳޠɾϑϥϯεޠɿCapsuleɺυΠπޠɿKapselʣͱɺ ʮখശʯΛҙຯ͢Δϥςϯޠͷ capsula ʹ༝དྷ͠ɺԿ͔Λ٧Ί͓ͯͨ͘ Ίͷ༰ثͷ͜ͱΛද͢ɻ”
https://ja.wikipedia.org/wiki/Χϓηϧ • ར༻ऀʹରͯ͠ɺʮ෦ΛӅ͢ʯʮެ։͢ΔใΛඞཁ࠷ݶͷͷʹ ݶఆ͢Δʯ • ΦϒδΣΫτࢦ͕Γ͍ͨ͜ͱ = ߴڽूɾૄ݁߹ • ΧϓηϧԽʮૄ݁߹ʯΛՃͤ͞ΔͨΊͷ༗༻ͳखஈ
σʔλͷӅṭ • ʮσʔλΛӅṭ͢Δͷ͕େࣄʯͱ͍͏ΑΓɺ ʮৄࡉΛଞऀؒͰྲྀ௨ͤ͞ͳ͍ʯͷ͕ྑ͍ઃܭʹͭͳ͕Δɺͱ͍͏ ײ֮ͷํ͕௫Έ͍͔͢ʁ • privateΛଚॏ͠·͠ΐ͏ɾɾʂ • ʮࡉ͔͘ΕΔʯ͜ͱʮࡉ͔͍ͬͯ͘Δʯʹܨ͕ͬͯɺ͢Δ ͱʮࡉ͔͍͜ͱʹΛ࣋ͭʯ͜ͱʹܨ͕Γ͔Ͷͳ͍
• ٯʹʮࡉ͔͍͜ͱΒͳ͍ʯͩͱɺ͓ޓ͍ͷʮຊʹඞཁͳ͜ ͱɺՌ͍ͨͨ͠తʯʹج͍ͮͨؔੑΛங͚Δ • Βͳ͍ํ͕ྑ͔ͬͨ͜ͱɺͨ͘͞Μ͋Γ·͢ΑͶɻઃܭಉ͡
࣮ͷӅṭ • ֤ΦϒδΣΫτͷಠཱੑΛकΓ·͠ΐ͏ʂʂతͳ • ʮ˓˓Λڭ͑ͯԼ͍͞ɺͨͩͦ͠ͷաఔ͋ͳͨʹҕͶ· ͢ʯ • ࣮͕Ӆṭ͞Ε͍ͯͳ͍ͱʁ => ΑΓʮखଓ͖ܕʯͬΆ͘ͳͬͨΓͦ͠͏
• ͋Δ͖ؔ: ʮXͱݴͬͨΒYʹ͍ͭͯڭ͑ͯʯ • ා͍ؔ: ʮ(Yʹ͍ͭͯΓ͍͔ͨΒ)d->a->gg->daͯ͠ʯ
ΫϥεͷӅṭ • લఏͱͯ͠ʮతʹద͏ͳΒɺԿͷΦϒδΣΫτͰ͑͑ ͰʯతͳελϯεͰ͍Δͱྑ͍ઃܭʹͳΓ͍͢ • ͦ͜Ͱ • ʮతʯΛந/Ծ/ΠϯλʔϑΣΠεͰఆٛͯ͠ɺ • ࣮/۩ମ(۩)ʹ͍ͭͯʮΒͳ͍͠ɺ͓ͤʂʯͰ
ࡁΉΑ͏ʹक͍ͬͯ͘
ઃܭͷӅṭ • (Facadeύλʔϯͱ͔ʹݟΒΕΔΑ͏ͳɺʮ۩ମతͳத ʹ͍ͭͯӅͭͭ͠ɺར༻ऀ͕ఏڙͰ͖Δใ(Ҿɺ input)Λड͚औͬͯࣗͷࣝ(ͱҕৡ)ʹΑͬͯɺతʹ͔ ͳ͏݁Ռ(output)Λฦ͢ʯΈ͍ͨͳΛࢦ͍ͯ͠Δ͔ͳʁ ͱࢥͬͨ) • օ͞ΜͲ͏ࢥ͍·ͨ͠ʁ
࣮ମԽͷӅṭ • ΦϒδΣΫτͷੜɺίϯετϥΫτʹ͍ͭͯʮతʹΒͳͯ͘ ͍͍ײ͡ʹ͢Δʯͱ͍ͬͨ • Factoryύλʔϯ • ͳͥʁ • ʮੜ͢Δʯͱ͍͏γʔϯʹ͓͍ͯɺ(ࣗڵຯͳ͍ͷʹ૬खͷ
߹ʹै͏ͨΊʹʂʂ)ͱͯଟ͘ͷใΛඞཁͱ͢Δɺͱ͍͏͜ͱ ͕ଟ͍ • ͜Ε͕ෆཁͳ݁߹ΛͨΒ͢
ৼΔ͍σʔλʹଘࡏ͢Δྲྀಈతཁૉ ɺڞ௨ੑ/ՄมੑੳʹΑͬͯநԽ ͢Δ
ڞ௨ੑɺՄมੑ • ڞ௨ੑ: ෳͷଘࡏʹஔ͍ͯීวతʹଘࡏ͢Δ(ৼΔ͍) • Մมੑ(ྲྀಈੑɺมಈੑ): ଞʹͳ͍ɺࠩҟ͕͋Δɺಠࣗੑͱͯ͠ଘࡏ͢Δ(ৼΔ͍) • ڞ௨ੑΛݟൈ͍ͯ(֓೦Ϩϕϧ)ɺͦΕΛநͱͯ͠ද͍ͯ͠ ͘(༷Ϩϕϧ)ɻʮڞ௨ੑʹऩ·Βͳ͍෦ʯΛ۩ͱͯ͠
࣮͢Δ(࣮Ϩϕϧ)
ʮڞ௨ੑΛநʹʯͰͳ͔ͬͨΒԿ͕ʁ • ྫ͑ʮখ͍͞ϊʔτʯͱʮେ͖͍ϊʔτʯʮେখΛ݉ͶΔʯͷͰɺந /ܧঝؔʹ͍͔ͨ͠ʁ • ڞ௨͍ͯ͠Δͷʮϊʔτੑʯͷͣ • ʮࣈ࿅शாʯͱʮࣗ༝ாʯʁ • ʮݘʯʮೣʯʮΫδϥʯͷؔʁ
• ੜ্ֶͷʮᄡೕྨʯ͕ɺఏڙ͢ΔγεςϜ෦ʹ͓͚Δʮతʯͷ؍͔ Βʮҙຯͷ͋Δڞ௨ੑʯͳͷ͔ʁ • ʮݘʯʮೣʯʮΠϯίʯͷؔʁ • ʮѪ؝ಈʯʮ໐͘(ੜ)ʯͱ͍͏ڞ௨ੑ͕େࣄʁ • ʮࣂ͍ํʯʮ໐͖ํʯՄมੑʹͳΔ
େֶӃੜ ֶੜ ߨٛΛड͚ΔΑ ڭࣨΛҠ ಈ͢ΔΑ Ξϯέʔτ ճऩ͢ΔΑ ߨٛΛड͚ΔΑ େֶӃੜֶੜͷόϦΤʔγϣϯ͔ʁ (ߨٛΛฉ͘༁Ͱͳ͍)TAͲ͏͢Δʁ
ߨٛΛࢹʹདྷ͓ͨҒ͍͞ΜͲ͏ʁ
ʮಉ͡తʹجͮ͘ཁૉʯͱ ଊ͑ΒΕͦ͏ʁ େֶӃੜ ֶੜ ߨٛΛड͚ΔΑ ڭࣨΛҠ ಈ͢ΔΑ Ξϯέʔτ ճऩ͢ΔΑ ߨٛΛड͚ΔΑ
ߨٛΛฉ͚ Δౕ ߨٛͷ ӡӦαϙʔ τౕ डߨ४උͰ ͖Δౕ ڞ௨ੑͷநग़ʹͱͮ͘நԽ
ΠϯλʔϑΣΠεΛ༻͍࣮ͯ͢Δ
InterfaceΛඞͣ͏ʁ • ίίͰࢦ͍ͯ͠Δͷɺඞͣ͠ݴޠػೳ্ͷʮInterfaceʯͱ ͍͏ҙຯͰͳ͍ɻͣɻ • ΠϯλʔϑΣΠε = ʮԿΛೖΕͨΒʯʮ(ԿΛͯ͠)ԿΛฦ͔͢ʯ • ݴ͍͑Δͱʮ͍ํʯʹΑͬͯʮԿ͕ಘΒΕΔ͔ʯ
• ͜ΕʮతʯʮػೳʯʹԊͬͨநԽ • ͭ·Γɺʮ࣮ଶ(۩)͔ΒۃྗΕͯɺత(ϩʔϧ)ಉ࢜ͷܨ͕ Γʹด͡ͳ͕ΒઃܭΛ͠·͠ΐ͏ʯ͘Β͍ͷ • ɾɾͱݸਓతʹࢥͬͨͷͰ͕͢ɺօ͞ΜͲ͏Ͱ͔͢ʁ
ܧঝɺطଘΦϒδΣΫτΛಛघԽ͢Δ ͨΊͷͷͰͳ͘ɺྲྀಈతཁૉΛ֓೦ Խ͢ΔͨΊͷखஈͱͯ͠ଊ͑Δ
େֶӃੜ Ξϯέʔτ ճऩ͢ΔΑ ߨٛΛड͚ΔΑ طଘΦϒδΣΫτΛಛघԽ͢Δྫ 5" ʮΦϒδΣΫτͷత()ͱؔͳ͍ϝιουʯΛ͍࣋ͬͯΔ ߨٛΛड͚Δ ༁Ͱͳ͍ ͔ΒΦʔόʔϥΠυΑ
େֶӃੜ Ξϯέʔτ ճऩ͢ΔΑ ߨٛΛड͚ΔΑ ߨٛΛฉ͚ Δౕ ߨٛͷ ӡӦαϙʔ τౕ डߨ४උͰ
͖Δౕ நʹΑͬͯྲྀಈతཁૉΛ֓೦Խ͢Δྫ 5" Ξϯέʔτ ճऩ͢ΔΑ
ֶੜ ֶशͷͨΊʹ ߨٛΛड͚ΔΑ ߨٛΛฉ͚ Δౕ நʹΑͬͯྲྀಈతཁૉΛ֓೦Խ͢Δྫ ࢹ Ϛϯ ධՁΛ͠ͳ͕Β ߨٛʹࢀՃ͢ΔΑ
ཧ͢Δσʔλ • ߨࢣͷύϑΥʔ Ϛϯε • डߨऀͷԠ ཧ͢Δσʔλ • ڭत༰ • ࢼݧɺ॓ͷใ
͋ͱ7߲ڍ͕͍ͬͯΔΑ • Ϋϥεதʹଘࡏ͢Δྲྀಈతཁૉ͔Βɺҟ࣭ͳྲྀಈతཁૉΛΓग़͢ • ݁߹Λ͘͢ΔΑ͏ΊΔ • ڽूΛߴ͘͢ΔΑ͏ΊΔ • ΦϒδΣΫτΛ༻͢ΔίʔυͱɺͦͷΦϒδΣΫτΛੜ͢Δ ίʔυΛ͢Δ
• OAOOϧʔϧΛݫक͢Δ • ҙਤʹΑΔϓϩάϥϛϯάͱҙਤΛ໌֬ʹද͢ωʔϛϯάϧʔϧΛ ༻͍ͯɺίʔυͷՄಡੑ্ʹΊΔ • ίʔσΟϯάΛ։࢝͢ΔલʹɺίʔυͷςετՄೳੑΛߟྀ͢Δ
σβΠϯύλʔϯʹΑΔ ࣮ͷΧϓηϧԽํ๏
ར༻ऀ-࣮ߦऀͷؔ • ”ࠓ·Ͱհ͖ͯͨ͠σβΠϯύλʔϯͷ͍͔ͭ͘ɺΫϥ ΠΞϯτΦϒδΣΫτ͔Β࣮ͷৄࡉΛӅṭ͢Δͱ͍͏ಛ Λ͍࣋ͬͯ·ͨ͠” νϟʔϋϯ ͍ͩ͘͞ʂ νϟʔϋϯ ͋͛ΔΑʂ ྫྷౚ͔
ങ͍ग़͠ ख࡞Γ ࣮ͷৄࡉʮ࣮ߦऀʯ͕ܾΊΔɻ ར༻ऀͷࢹքʹೖΕͤ͞ͳ͍ɺΓ͢
• ࣮ͷӅṭʹΑ֦ͬͯுΛ༰қʹ͢Δ • ྫ: Bridgeύλʔϯ • ࣮ͱந(ΠϯλʔϑΣΠε)ΛΓͯ͠ɺར༻ऀந ʹ͚͔͚ͩ͠ΔΑ͏ʹ͢Δ • ࣮ͷछྨ͕૿͑ͯɺΫϥΠΞϯτӨڹΛड͚ͣʹ
֦ுͰ͖ΔΑ͏ʹͳΔ ࣮ͷӅṭʹΑΔ֦ுੑͷ୲อ
ڞ௨ੑ/Մมੑੳͱ σβΠϯύλʔϯ (25.4ʙ25.6)
ڞ௨ੑ/ՄมੑੳͱྖҬ • “͔͠͠࠷ॏཁͳ͜ͱɺڞ௨ੑ/ՄมੑੳΛ༻͍ͨڞ௨ੑ ͷચ͍ग़͠ʹΑͬͯɺྖҬʹଘࡏ͍ͯ͠ΔύλʔϯΛચ͍ ग़͢ࡍͷख͕͔Γ͕ಘΒΕΔͱ͍͏͜ͱͳͷͰ͢ɻ” • ʮ࣮Ϩϕϧͷܗ͕ݟ͑Δʯ͜ͱΑΓɺ ʮྖҬͷܗΛϒϥογϡΞοϓͰ͖Δʯͷ͕ଚ͍ʂ • (֓೦Ϩϕϧͷ)நΛͲ͏͢Δʁ͕ܾ·ΕɺInterface/
implementsAbstract/extendsͲ͏͢Δʁࣗͣͱಋ͔ΕΔ ΑͶʙʂͱ͍͏ҼՌؔʹͦ͜Λ͚Δ
ڞ௨ੑ/Մมੑੳͱύλʔϯ • σβΠϯύλʔϯɺʮΑ͋͘Γ͕ͪͳXʯʹରͯ͠ʮ͍͍ײ͡ ʹϋϚΓ͍͢ܗࣜʯͱ͍͏දݱํ๏ΛఆࣜԽͨ͠ͷɾɾͱݴ͑ Δ • Α͋͘Γ͕ͪͳ = ڞ௨ੑ •
ʮ࣮ͷܗʯΑΓʮͲ͏͍͏෩ʹͷલͷΛೝࣝ͢Δ͔ʯͷ खॿ͚ʹͳΔʂ • strategyͬΆ͍ɺfacadeͬΆ͍ɺfactoryͬΆ͍etc… • ʮ˓˓͕ͬͯ͋ΔͷΛ͍ͬͯΔʯ͜ͱͷՁ
ύλʔϯͷؔ࿈
ύλʔϯॏཁͳͷͰͳ͘ͳΔ • ΞϨάβϯμʔʮੜ͖ੜ͖ͱͨ͠ݐઃʯΛࢦͨ͠ਓ • ͨͱ͑ʮݟͨͷඒ͠͞ίϯηϓτ͚ͩΛॏࢹͨ͠ɺډ ৺͕ѱ͍ਤॻؗʯͱ͔͕ݏʙͬͯਓɻʮຊΛಡΉਓͷࣗવ ͱཉ͢Δͷ͕݉ͶඋΘ͍ͬͯΔݐઃʯ͕͍͍ΑͶʂͬͯ • ύλʔϯϥϯήʔδɺͦ͏ͨ͠ʮΑ͘ٻΊΒΕΔͷʯʮͦ ͷޮՌɺํ๏ʯΛ·ͱΊͨͷ
• ͳͷͰɺʮ͠ύλʔϯࣗମΛΒͳͯ͘ɺཉ͍͠ͱ࣮ݱ ํ๏͕ࣗવͱ༙͖ग़ͯ͘Δʯ͜ͱʹൺͯʮύλʔϯΛͬͯ ͍Δʯ͜ͱͷॏཁੑԼ͢Δ
ίϯςΩετ͕ઌɺύλʔϯ͕ޙ(Έ͍ͨͳ) • ”ݱ࣮Λͦͷ··ड͚ೖΕΔ͜ͱΛֶΜͰ͠·͑ɺ ύλʔϯͦͷͷॏཁͰͳ͍” • ”࢝ΊతͳڌΓॴͰ͋ͬͨΞϧίʔϓͱ͍͏ύλʔϯ ͕ɺඞཁͰͳ͘ͳΔɻ(தུ)ᴷ୯ʹͦΕ͕;͞Θ͠ ͍ͱ͍͏ཧ༝ͰᴷΞϧίʔϒΛ࡞Δ͜ͱʹͳΔ” • ࣝͱͯ͠ύλʔϯΛʹ͚ͭΔ͜ͱͰίϯςΩετΛࣝ
ผ͘͢͠ͳΔ͔Εͳ͍͕ɺύλʔϯ͕ಛఆͷί ϯςΩετΛ༠ൃ͢ΔͷͰͳ͍
·ͱΊతͳͷ • ΦϒδΣΫτࢦݪଇ • (͍ҙຯͰͷ)ΧϓηϧԽΛେࣄʹͯ͠ʂ • ߴڽूͱૄ݁߹Λࢦͯ͠ʂ • ڞ௨ੑΛநग़ͯ͠நΛ࡞ͬͯɺநΛཔΓʹͨ͠ઃܭΛͯ͠ʂ •
σβΠϯύλʔϯ • ΦϒδΣΫτࢦݪଇΛ׆͔͠·ͬͨ͘ྑ͍ײ͡ͷϨγϐूͰ͋ΔΑʂ • ύλʔϯΛͬͯɺਂΊΔ͜ͱͰྖҬͷΞϓϩʔνڧ͘ͳΕΔʂ • ύλʔϯͦͷͷΛΔ͜ͱͰͳ͍ΑɺʮΛݟۃΊΒΕΔΑ͏ʹͳ ΔʯʮͦͷରԠ๏ͱɺͦΕʹΑΔӨڹʯΛ௫ΊΔΑ͏ʹͳΔͷ͕େࣄʂ • ྑ͍ઃܭʹΑͬͯɺมߋʹڧ͍γεςϜΛߏங͍ͯ͘͠ʂ