Slide 1

Slide 1 text

,PUMJOͰ"1*Λܕ҆શʹͨ͠࿩ 3LU /PSJZVLJ*TIJEB

Slide 2

Slide 2 text

͍͋ͭࣗ͝͞ݾ঺հ ɾ໊લ/PSJZVLJ*TIJEB ɾαʔόαΠυʢ,PUMJO+BWB1)11ZUIPO ɾΤϯδχΞ!3FUUZ ɾJ04 4XJGU0CKFDUJWF$ ɾ"84΋ͦͦ͜͜৮Δ ɾ,PUMJOྺ೥ϲ݄͘Β͍ ɾ,PUMJO͔Θ͍͍ ɾ࠷ۙ,PUMJO͗ͯ͢͠+BWBΛ๨Ε͖ͯͨ ɾ,PUMJO/BUJWFʹ΋ظ଴͍ͯ͠Δ IUUQTRJJUBDPNOPSJQJJUFNTFFDCEBDBGCE

Slide 3

Slide 3 text

ຊ೔ͷ͓࿩ ɾ,PUMJOΛಋೖͨ͠ܦҢ ɾ,PUMJOʹͯ͠Έͯײͨ͜͡ͱ

Slide 4

Slide 4 text

ࠃ಺/P໊࣮άϧϝαʔϏε3FUUZͷӡӦ ೥ઃཱ XFCͱΞϓϦͰαʔϏεల։ γϯάϧυϝΠϯ εϚϗϑΝʔετ ݄ؒར༻ऀ਺ສ

Slide 5

Slide 5 text

3FUUZ ɾ8FC ɾΞϓϦ

Slide 6

Slide 6 text

ฐࣾʹ͓͚Δ,PUMJO ɾΞϓϦ༻"1*ʹ,PUMJOΛ࢖͍ͬͯ·͢ ϒϥ΢β ΞϓϦ 8FCΞϓϦέʔγϣϯαʔό "1*αʔό %#

Slide 7

Slide 7 text

,PUMJOΛಋೖͨ͠ܦҢ

Slide 8

Slide 8 text

1)1Ͱ࡞ΒΕ͍ͯͨ"1* ɾ8FCΞϓϦέʔγϣϯʹ"1*Λੜ΍͍ͯͨ͠ ϒϥ΢β ΞϓϦ 8FCΞϓϦέʔγϣϯαʔό "1*αʔό %# ɾࣾ಺ʹ1)1Λॻ͚Δਓ͕ଟ͘։ൃεϐʔυ΋଎͍

Slide 9

Slide 9 text

1)1Ͱ࡞ΒΕ͍ͯͨ"1* ɾ౰࣌ͷ"1*ͷಛ௃ ɾฦΓ஋͸΄΅+40/ܗ͕ࣜͩҧ͏͜ͱ΋͋Δ ɾ+40/ͷLFZʹೖΔ஋ͷܕ͕Ұҙʹఆ·Βͳ͍ ɾͲͷLFZʹͲΜͳ஋͕ೖͬͯ͘Δ͔ɺιʔείʔυΛݟͳ͍ͱ෼͔Βͳ͍ ɾ͍ͭͰ΋Ͳ͜Ͱ΋0, ΞϓϦ 8FCΞϓϦέʔγϣϯαʔό ˓˓ͷҰཡ͍ͩ͘͞ʂʢ͖ͬͱ"SSBZʣ GBMTF ɾฦΓ஋ͷόϦσʔγϣϯʢͦΕ͕ࣦഊ͔Ͳ͏͔΋ؚΊʣ͸ΫϥΠΞϯτଆͷ੹຿

Slide 10

Slide 10 text

1)1͔Β+BWB΁ ɾ8FCΞϓϦέʔγϣϯͱ෼཭ͯ͠+BWB΁ ɾαʔόαΠυݴޠͱ࣮ͯ͠੷͕͋Γɺ'8΋๛෋ ɾΞϊςʔγϣϯͰ"1*ΛγϯϓϧʹఆٛͰ͖Δ+"934ͱ͍͏࢓༷͕͋Δ ΞϓϦ "1*αʔό ˓˓ͷҰཡ͍ͩ͘͞ʂʢ͖ͬͱ"SSBZʣ <\^ \^> ɾฦΓ஋ͷܕΛ10+0 ී௨ͷ+BWBΦϒδΣΫτ Ͱࣄલʹఆٛ ˠܕ҆શͳ"1*ͰΞϓϦΤϯδχΞʹฏ࿨ͳੈքΛ ɾࣦഊͨ͠ΒYYYYΛฦ͢

Slide 11

Slide 11 text

ɾ+BWBͩͬͨͷͰ݁ߏϞμϯͳॻ͖ํ͕Ͱ͖͍ͯͨ +BWB͔Β,PUMJO΁ͷҠߦ ɾ࣮͸Ҡߦ͢Δͭ΋Γ͸ͳ͔ͬͨ ɾ1)1ͷࠒͱൺ΂ͯ"1*͕֨ஈʹྑ͘ͳͬͯɺຬ଍͍ͯͨ͠

Slide 12

Slide 12 text

+BWB͔Β,PUMJO΁ͷҠߦ ɾҠߦͨ͠ཧ༝ ɾ͋Δ೔ಥવ͜Μͳ΋ͷ͕ ˠ͓΋ΉΖʹ,PUMJO͕ಋೖ͞Εͨ

Slide 13

Slide 13 text

"1*ͷݱࡏ ΏΔ΍͔ʹ,PUMJOԽΛਐߦத

Slide 14

Slide 14 text

,PUMJOʹͯ͠Έͯײͨ͜͡ͱ

Slide 15

Slide 15 text

ɾ͢ΜͳΓಋೖͰ͖Δ ɾطʹ+BWBͷϓϩμΫτ͕͋Δ৔߹ɺͦ͜ʹ,PUMJOΛೖΕΔͷ͸ͱͯ΋؆୯ ɾ+BWBͩͱಈ͍ͨͷʹॻ͖׵͑ͨΒಈ͔ͳ͘ͳͬͨɺͱ͍͏͜ͱ͸·ͣͳ͍ ,PUMJOʹͯ͠Έͯ ɾ͋Δ6UJMJUZ͚ͩॻ͖׵͑ͱ͍͏͜ͱ΋؆୯ ɾ,PUMJO͔Θ͍͍ ɾ/6--ڐ༰ܕܕਪ࿦ϥϜμͳͲϞμϯͳݴޠͷػೳΛҰ௨Γඋ͑Δ ɾ+BWB͔ΒͪΌΜͱίʔϧͰ͖ΔͷͰ+BWB͔͠ॻ͔ͳ͍ਓ͕͍ͯ΋҆৺ ɾൺֱతετϨεগͳ͘ॻ͚Δݴޠͷͭ ɾ࢖͑͹࢖͏΄ͲΑΓྑ͍ॻ͖ํ͕ݟ͔ͭͬͯ͘Δ

Slide 16

Slide 16 text

Ҡߦͯ͠ؾ͍ͮͨ,PUMJOͷϝϦοτ ɾ/VMMBCJMJUZΛίϯύΠϥϨϕϧͰఆٛͰ͖Δ ɾͦ΋ͦ΋1)1͔ΒҠߦͨ͠໨త͸ɺฦΓ஋ͷܕΛݫີʹఆٛ͢Δ͜ͱ ɾ+BWB࣌୅ʹ͸!/VMMBCMFΞϊςʔγϣϯͰදݱ͍͕ͯͨ͠ɺίϯύΠϥ
 ɹνΣοΫ͕ͳ͍ͨΊ࣮ଶͱҟͳ͍ͬͯͨ ɾΫϥΠΞϯτଆ͕0QUJPOBMͷػߏΛ࣋ͭݴޠͰॻ͔ΕΔ͜ͱ͕૿͖͍͑ͯͯΔ ˠ/6--ڐ༰͔Ͳ͏͔Λهड़͢Δ͜ͱ͸ɺܕΛهड़͢Δ
 ɹ͜ͱͱಉ͘͡Β͍ॏཁ

Slide 17

Slide 17 text

Ҡߦͯ͠ؾ͍ͮͨ,PUMJOͷϝϦοτ ɾσʔλϗϧμΫϥεͷఆٛ ɾฦΓ஋ͷܕΛ10+0 ී௨ͷ+BWBΦϒδΣΫτ Ͱࣄલʹఆٛ͢Δඞཁ͕͋Δ ɾ+BWBͩͱఆٛ͢Δͷ͕ͪΐͬͱΊΜͲ͍͘͞ public class GetRestaurantResponse { private long restaurantId; private String restaurantName; public long getRestaurantId() { return this.restaurantId; } public String getRestaurantName() { return this.restaurantName; } }

Slide 18

Slide 18 text

Ҡߦͯ͠ؾ͍ͮͨ,PUMJOͷϝϦοτ ɾσʔλϗϧμΫϥεͷఆٛ ɾ,PUMJOͷ৔߹ɺEBUBDMBTTΛ࢖͑͹γϯϓϧʹهड़Ͱ͖Δ data class GetRestaurantResponse( val restaurantId: Long, val restaurantName: String )

Slide 19

Slide 19 text

Ҡߦͯ͠ؾ͍ͮͨ,PUMJOͷϝϦοτ ɾ$MBTT%FMFHBUJPO ɾجຊతͳܕΛ૊Έ߹ΘͤͯฦΓ஋Λ࡞Γ͍ͨέʔε͸ׂͱΑ͋͘Δ ɾ+BWBͩͱఆٛ͢Δͷ͕͍ͩͿΊΜͲ͍͘͞ public class GetReviewResponse implements IReview, IRestaurant, IUser { private IReview review; private IRestaurant restaurant; private IUser user; public long getReviewId() { return this.review.getReviewId(); } public String getUserName() { return this.user.getUserName(); } public String getRestaurantName() { return this.restaurant.getRestaurantName(); } ... }

Slide 20

Slide 20 text

Ҡߦͯ͠ؾ͍ͮͨ,PUMJOͷϝϦοτ ɾ$MBTT%FMFHBUJPO ɾΠϯλϑΣʔεͷ࣮૷ΛଞͷΫϥεʹҠৡͰ͖Δ ɾQSPQFSUZΛࡉ͔͘JOUFSGBDFԽ͓͚ͯ͠͹ɺฦΓ஋ΫϥεΛࡉ͔͘ఆٛՄೳʹ data class GetReviewResponse( private val review: IReview, private val restaurant: IRestaurant, private val user: IUser ) : IReview by review, IRestaurant by restaurant, IUser by user { // ෳ਺ͷinterfaceͰఆ͕͔ٛͿͬͯΔͱ͖͚ͩ໌ࣔతʹࢦఆ override val userId: Int = this.user.userId }

Slide 21

Slide 21 text

·ͱΊ ɾ,PUMJO͸͢ΜͳΓಋೖͰ͖Δʂ ɾฐࣾͰ΋ɺ͋Δ೔͓΋ΉΖʹ,PUMJO͕௥Ճ͞Ε͔ͯͦ͜ΒঃʑʹҠߦ͍ͯ͠·͢ ɾ,PUMJOͷ͍͍ͱ͜Ζ
 ɾطʹ+BWBͷϓϩμΫτ͕͋Δ৔߹ɺͦ͜ʹ,PUMJOΛೖΕΔͷ͸ͱͯ΋؆୯ ɾ/VMMڐ༰ܕͰ֎෦ΠϯλϑΣʔεΛΑΓݫີʹఆٛͰ͖Δ ɾEBUBDMBTTΛ࢖ͬͯσʔλϗϧμΛγϯϓϧʹఆٛͰ͖Δ ɾ$MBTT%FMFHBUJPO ɾଞʹ΋͍Ζ͍Ζ