良いコード、悪いコードで学ぶ設計入門 の写経 + Python / Rust化 をやる
----- 以下、オリジナルの文章 ------
本文記載のサンプルコード一覧です。
一部のソースコードは、コンパイルを通すために、本文にはないコードを追加しております。 また、一部の極めて小さなコードは、サンプルコードとして用意しておりません。
ご了承ください。
本文のリスト番号 | 対応ファイル |
---|---|
1.1 | src/chapter01_failuredesigndigest/technicalname/MemoryStateManager.java |
1.2 | src/chapter01_failuredesigndigest/numberingname/Class001.java |
1.3 | src/chapter06_conditionbranch/earlyreturn/v1/NestedLogic.java |
1.5 | src/chapter01_failuredesigndigest/dataclass/ContractAmount.java |
1.6 | src/chapter01_failuredesigndigest/dataclass/ContractManager.java |
本文のリスト番号 | 対応ファイル |
---|---|
2.1 | src/chapter02_designfirststep/damage/v1/DamageLogic.java |
2.2 | src/chapter02_designfirststep/damage/v2/DamageLogic.java |
2.3 | src/chapter02_designfirststep/damage/v3/DamageLogic.java |
2.4, 2.5 | src/chapter02_designfirststep/damage/v4/DamageLogic.java |
2.6, 2.7, 2.8 | src/chapter02_designfirststep/hitpoint/v1/HitPointLogic.java |
2.9 | src/chapter02_designfirststep/hitpoint/v2/HitPoint.java |
本文のリスト番号 | 対応ファイル |
---|---|
3.18 | src/chapter03_fundamentalofoop/Money.java |
3.19 | src/chapter03_fundamentalofoop/Money.rb |
3.20 | src/chapter03_fundamentalofoop/Money.js |
本文のリスト番号 | 対応ファイル |
---|---|
4.1 | src/chapter04_immutable/reassigning/v1/DamageLogic.java |
4.3 | src/chapter04_immutable/reassigning/v2/DamageLogic.java |
4.4 | src/chapter04_immutable/finalparam/v1/MutableParamLogic.java |
4.5 | src/chapter04_immutable/finalparam/v2/ImmutableParamLogic.java |
4.6 | src/chapter04_immutable/sideeffect/v1/AttackPower.java |
4.7 | src/chapter04_immutable/sideeffect/v1/Weapon.java |
4.8, 4.9, 4.11 | src/chapter04_immutable/sideeffect/v1/ProcessLogic.java |
4.13 | src/chapter04_immutable/sideeffect/v2/AttackPower.java |
4.14, 4.17 | src/chapter04_immutable/sideeffect/v2/ProcessLogic.java |
4.18 | src/chapter04_immutable/sideeffect/v3/AttackPower.java |
4.19, 4.20, 4.22 | src/chapter04_immutable/sideeffect/v3/ProcessLogic.java |
4.21 | src/chapter04_immutable/sideeffect/v3/Weapon.java |
4.24 | src/chapter04_immutable/mutator/v1/ |
4.25 | src/chapter04_immutable/mutator/v2/ |
本文のリスト番号 | 対応ファイル |
---|---|
5.1 | src/chapter05_lowcohesionseries/staticmiss/OrderManager.java |
5.2 | src/chapter05_lowcohesionseries/staticmiss/OrderLogic.java |
5.3 | src/chapter05_lowcohesionseries/staticmiss/PaymentManager.java |
5.4 | src/chapter05_lowcohesionseries/gift/v1/GiftPoint.java |
5.5, 5.6 | src/chapter05_lowcohesionseries/gift/v1/GiftLogic.java |
5.7 | src/chapter05_lowcohesionseries/gift/v2/GiftPoint.java |
5.8, 5.9 | src/chapter05_lowcohesionseries/gift/v2/GiftLogic.java |
5.10 | src/chapter05_lowcohesionseries/common/Common.java |
5.12 | src/chapter05_lowcohesionseries/common/AmountIncludingTax.java |
5.13 | src/chapter05_lowcohesionseries/crosscutting/LoggerLogic.java |
5.14 | src/chapter05_lowcohesionseries/location/v1/ActorManager.java |
5.17 | src/chapter05_lowcohesionseries/location/v1/DiscountManager.java |
5.18 | src/chapter05_lowcohesionseries/location/v2/Location.java |
5.20 | src/chapter05_lowcohesionseries/outkeyword/RecoverCompletely.cs |
5.21 | src/chapter05_lowcohesionseries/outkeyword/HitPoint.cs |
5.23 | src/chapter05_lowcohesionseries/magic/v1/RecoverMagicPointMethod.java |
5.24 | src/chapter05_lowcohesionseries/magic/v1/Common.java |
5.25 | src/chapter05_lowcohesionseries/magic/v1/Util.java |
5.26 | src/chapter05_lowcohesionseries/magic/v2/RegularPrice.java |
5.27 | src/chapter05_lowcohesionseries/magic/v2/DiscountedPrice.java |
5.29 | src/chapter05_lowcohesionseries/magic/v2/MagicPoint.java |
5.31 | src/chapter05_lowcohesionseries/methodchain/Equipments.java |
本文のリスト番号 | 対応ファイル |
---|---|
6.1 | src/chapter06_conditionbranch/earlyreturn/v1/NestedLogic.java |
6.3 | src/chapter06_conditionbranch/earlyreturn/v2/NestedLogic.java |
6.4 | src/chapter06_conditionbranch/earlyreturn/v3/NestedLogic.java |
6.5 | src/chapter06_conditionbranch/earlyreturn/v4/NestedLogic.java |
6.6 | src/chapter06_conditionbranch/earlyreturn/v5/NestedLogic.java |
6.7 | src/chapter06_conditionbranch/elsekeyword/v1/ElseLogic.java |
6.8 | src/chapter06_conditionbranch/elsekeyword/v2/ElseLogic.java |
6.9 | src/chapter06_conditionbranch/elsekeyword/v3/ElseLogic.java |
6.10 | src/chapter06_conditionbranch/switchcase/magic/MagicType.java |
6.11, 6.12, 6.13 | src/chapter06_conditionbranch/switchcase/magic/v1/MagicManager.java |
6.14, 6.15, 6.16, 6.17 | src/chapter06_conditionbranch/switchcase/magic/v2/MagicManager.java |
6.18 | src/chapter06_conditionbranch/switchcase/magic/v3/Magic.java |
6.19 | src/chapter06_conditionbranch/switchcase/shape/v1/Rectangle.java |
6.19 | src/chapter06_conditionbranch/switchcase/shape/v1/Circle.java |
6.22 | src/chapter06_conditionbranch/switchcase/shape/v1/ShowAreaLogic.java |
6.23 | src/chapter06_conditionbranch/switchcase/shape/v2/Shape.java |
6.24 | src/chapter06_conditionbranch/switchcase/shape/v2/Rectangle.java |
6.24 | src/chapter06_conditionbranch/switchcase/shape/v2/Circle.java |
6.28 | src/chapter06_conditionbranch/switchcase/magic/v4/Magic.java |
6.29 | src/chapter06_conditionbranch/switchcase/magic/v4/Fire.java |
6.30 | src/chapter06_conditionbranch/switchcase/magic/v4/Shiden.java |
6.31 | src/chapter06_conditionbranch/switchcase/magic/v4/HellFire.java |
6.32, 6.33 | src/chapter06_conditionbranch/switchcase/magic/v4/MagicSwitch.java |
6.34 | src/chapter06_conditionbranch/switchcase/magic/v4/MagicSwitchV2.java |
6.37 | src/chapter06_conditionbranch/switchcase/magic/v5/Magic.java |
6.38 | src/chapter06_conditionbranch/switchcase/magic/v5/Fire.java |
6.39 | src/chapter06_conditionbranch/switchcase/magic/v5/Shiden.java |
6.40 | src/chapter06_conditionbranch/switchcase/magic/v5/HellFire.java |
6.41, 6.42 | src/chapter06_conditionbranch/policy/v1/CustomerRankLogic.java |
6.43 | src/chapter06_conditionbranch/policy/v2/ExcellentCustomerRule.java |
6.44 | src/chapter06_conditionbranch/policy/v2/GoldCustomerPurchaseAmountRule.java |
6.45 | src/chapter06_conditionbranch/policy/v2/PurchaseFrequencyRule.java |
6.46 | src/chapter06_conditionbranch/policy/v2/ReturnRateRule.java |
6.47 | src/chapter06_conditionbranch/policy/v2/ExcellentCustomerPolicy.java |
6.48 | src/chapter06_conditionbranch/policy/v2/CallExcellentCustomerPolicyLogic.java |
6.49 | src/chapter06_conditionbranch/policy/v2/GoldCustomerPolicy.java |
6.50 | src/chapter06_conditionbranch/policy/v2/SilverCustomerPolicy.java |
6.51 | src/chapter06_conditionbranch/hotelrate/v1/HotelRates.java |
6.52 | src/chapter06_conditionbranch/hotelrate/v1/RegularRates.java |
6.53 | src/chapter06_conditionbranch/hotelrate/v1/PremiumRates.java |
6.54 | src/chapter06_conditionbranch/hotelrate/v1/TypeCheckLogic.java |
6.55 | src/chapter06_conditionbranch/hotelrate/v2/HotelRates.java |
6.56 | src/chapter06_conditionbranch/hotelrate/v2/RegularRates.java |
6.57 | src/chapter06_conditionbranch/hotelrate/v2/PremiumRates.java |
6.58 | src/chapter06_conditionbranch/hotelrate/v2/CallHotelRatesLogic.java |
6.60 | src/chapter06_conditionbranch/flagvariable/v1/FlagLogic.java |
6.61 | src/chapter06_conditionbranch/flagvariable/v1/SelectorLogic.java |
6.62 | src/chapter06_conditionbranch/flagvariable/v2/DamageLogic.java |
6.63 | src/chapter06_conditionbranch/flagvariable/v3/Damage.java |
6.64 | src/chapter06_conditionbranch/flagvariable/v3/HitPointDamage.java |
6.64 | src/chapter06_conditionbranch/flagvariable/v3/MagicPointDamage.java |
6.65 | src/chapter06_conditionbranch/flagvariable/v3/DamageType.java |
6.65 | src/chapter06_conditionbranch/flagvariable/v3/ApplyDamageLogic.java |
本文のリスト番号 | 対応ファイル |
---|---|
7.1 | src/chapter07_collection/prison/v1/PrisonLogic.java |
7.2 | src/chapter07_collection/prison/v2/PrisonLogic.java |
7.3 | src/chapter07_collection/earlycontinue/v1/Logic.java |
7.4 | src/chapter07_collection/earlycontinue/v2/Logic.java |
7.5 | src/chapter07_collection/earlycontinue/v3/Logic.java |
7.6 | src/chapter07_collection/earlybreak/v1/Logic.java |
7.7 | src/chapter07_collection/earlybreak/v2/Logic.java |
7.8 | src/chapter07_collection/party/v1/FieldManager.java |
7.10 | src/chapter07_collection/party/v1/BattleManager.java |
7.14 | src/chapter07_collection/party/v2/Party.java |
本文のリスト番号 | 対応ファイル |
---|---|
8.1 | src/chapter08_tightcoupling/discount/v1/DiscountManager.java |
8.1 | src/chapter08_tightcoupling/discount/v1/Product.java |
8.1 | src/chapter08_tightcoupling/discount/v1/ProductDiscount.java |
8.2 | src/chapter08_tightcoupling/discount/v1/SummerDiscountManager.java |
8.3 | src/chapter08_tightcoupling/discount/v2/DiscountLogic.java |
8.4 | src/chapter08_tightcoupling/discount/v3/RegularPrice.java |
8.5 | src/chapter08_tightcoupling/discount/v3/RegularDiscountedPrice.java |
8.6 | src/chapter08_tightcoupling/discount/v3/SummerDiscountedPrice.java |
8.7 | src/chapter08_tightcoupling/attack/bad/PhysicalAttack.java |
8.8 | src/chapter08_tightcoupling/attack/bad/FighterPhysicalAttack.java |
8.9 | src/chapter08_tightcoupling/attack/good/FighterPhysicalAttack.java |
8.10 | src/chapter08_tightcoupling/commonextend/v1/DiscountBase.java |
8.13 | src/chapter08_tightcoupling/commonextend/v1/RegularDiscount.java |
8.14 | src/chapter08_tightcoupling/commonextend/v2/DiscountBase.java |
8.15 | src/chapter08_tightcoupling/commonextend/v2/RegularDiscount.java |
8.16 | src/chapter08_tightcoupling/commonextend/v2/SummerDiscount.java |
8.17 | src/chapter08_tightcoupling/commonextend/v3/DiscountBase.java |
8.18 | src/chapter08_tightcoupling/util/v1/Util.java |
8.19 | src/chapter08_tightcoupling/util/v2/Reservation.java |
8.20 | src/chapter08_tightcoupling/util/v2/ViewCustomizing.java |
8.21 | src/chapter08_tightcoupling/util/v2/MailMagazineService.java |
8.22 | src/chapter08_tightcoupling/visibility/v1/HitPointRecovery.java |
8.23 | src/chapter08_tightcoupling/visibility/v1/PositiveFeelings.java |
8.24 | src/chapter08_tightcoupling/visibility/v1/BattleView.java |
8.25 | src/chapter08_tightcoupling/visibility/v2/PositiveFeelings.java |
8.26 | src/chapter08_tightcoupling/order/OrderService.java |
8.27 | src/chapter08_tightcoupling/selling/good/SellingPrice.java |
8.28 | src/chapter08_tightcoupling/selling/bad/SellingPrice.java |
8.29 | src/chapter08_tightcoupling/selling/good/SellingCommission.java |
8.30 | src/chapter08_tightcoupling/selling/good/DeliveryCharge.java |
8.31 | src/chapter08_tightcoupling/selling/good/ShoppingPoint.java |
8.32 | src/chapter08_tightcoupling/hugedata/Order.java |
本文のリスト番号 | 対応ファイル |
---|---|
9.1 | src/chapter09_unhealthycode/DeadCode.java |
9.2 | src/chapter09_unhealthycode/comic/ComicManager.java |
9.3 | src/chapter09_unhealthycode/comic/ReadingPoint.java |
9.6, 9.7, 9.8 | src/chapter09_unhealthycode/nullproblem/v1/Member.java |
9.10 | src/chapter09_unhealthycode/nullproblem/v1/ShowLogic.java |
9.11 | src/chapter09_unhealthycode/nullproblem/v2/Equipment.java |
9.16 | src/chapter09_unhealthycode/level/Level.java |
9.17 | src/chapter09_unhealthycode/level/MetaproLogic.java |
9.19 | src/chapter09_unhealthycode/usergenerate/User.java |
9.20, 9.21 | src/chapter09_unhealthycode/usergenerate/GenerateLogic.java |
本文のリスト番号 | 対応ファイル |
---|---|
10.1 | src/chapter10_namedesign/serviceusage/ServiceUsageFee.java |
10.5 | src/chapter10_namedesign/maxhitpoint/OriginalMaxHitPoint.java |
10.6 | src/chapter10_namedesign/maxhitpoint/CorrectedMaxHitPoint.java |
10.8 | src/chapter10_namedesign/insidelogicname/v1/Magic.java |
10.9 | src/chapter10_namedesign/insidelogicname/v2/Magic.java |
10.11 | src/chapter10_namedesign/orders/v1/Order.java |
10.12 | src/chapter10_namedesign/orders/v2/Order.java |
10.13 | src/chapter10_namedesign/product/v1/ProductInfo.java |
10.14 | src/chapter10_namedesign/product/v2/ProductDto.java |
10.18 | src/chapter10_namedesign/manager/MemberManager.java |
10.19 | src/chapter10_namedesign/gerund/Enemy.java |
10.20 | src/chapter10_namedesign/gerund/PartyItems.java |
10.21 | src/chapter10_namedesign/booleanmethod/v1/Common.java |
10.22 | src/chapter10_namedesign/booleanmethod/v2/Member.java |
本文のリスト番号 | 対応ファイル |
---|---|
11.2 | src/chapter11_comment/v1/Member.java |
11.3 | src/chapter11_comment/v2/Member.java |
11.5 | src/chapter11_comment/v3/Member.java |
11.6 | src/chapter11_comment/v4/Member.java |
11.7 | src/chapter11_comment/Money.java |
本文のリスト番号 | 対応ファイル |
---|---|
12.1 | src/chapter12_method/Person.java |
12.2 | src/chapter12_method/commandquery/ModifireLogic.java |
12.3 | src/chapter12_method/commandquery/CommandQueryLogic.java |
12.4 | src/chapter12_method/returnvalue/v1/Price.java |
12.5 | src/chapter12_method/returnvalue/v1/MoneysLogic.java |
12.7 | src/chapter12_method/returnvalue/v2/Price.java |
12.8 | src/chapter12_method/returnvalue/v2/MoneysLogic.java |
12.9 | src/chapter12_method/doublemeaning/v1/Location.java |
12.10 | src/chapter12_method/doublemeaning/v2/Location.java |
本文のリスト番号 | 対応ファイル |
---|---|
14.1 | src/chapter14_refactoring/webcomic/v1/PurchasePointPayment.java |
14.2 | src/chapter14_refactoring/webcomic/v2/PurchasePointPayment.java |
14.3 | src/chapter14_refactoring/webcomic/v3/PurchasePointPayment.java |
14.4 | src/chapter14_refactoring/webcomic/v4/PurchasePointPayment.java |
14.5 | src/chapter14_refactoring/webcomic/v5/PurchasePointPayment.java |
14.6 | src/chapter14_refactoring/webcomic/Customer.java |
14.7 | src/chapter14_refactoring/webcomic/v6/PurchasePointPayment.java |
14.8 | src/chapter14_refactoring/delivery/v1/DeliveryManager.java |
14.9 | src/chapter14_refactoring/delivery/v2/ShoppingCart.java |
14.10 | src/chapter14_refactoring/delivery/v2/Product.java |
14.11 | src/chapter14_refactoring/delivery/v2/DeliveryCharge.java |
14.12 | test/chapter14_refactoring/delivery/v3/DeliveryChargeTest.java |
14.13 | src/chapter14_refactoring/delivery/v3/DeliveryCharge.java |
14.14 | src/chapter14_refactoring/delivery/v4/DeliveryCharge.java |
14.15 | src/chapter14_refactoring/delivery/v5/ShoppingCart.java |
14.16 | src/chapter14_refactoring/delivery/v5/DeliveryManager.java |
14.17 | src/chapter14_refactoring/delivery/v5/DeliveryCharge.java |
14.18 | src/chapter14_refactoring/delivery/v6/ShoppingCart.java |
14.19 | src/chapter14_refactoring/delivery/v6/DeliveryCharge.java |
14.20 | src/chapter14_refactoring/delivery/v7/DeliveryCharge.java |
14.21 | src/chapter14_refactoring/delivery/v8/DeliveryCharge.java |
14.22 | src/chapter14_refactoring/delivery/v8/ShoppingCart.java |