回答編集履歴
2
変だったところ修正
test
CHANGED
@@ -184,7 +184,7 @@
|
|
184
184
|
|
185
185
|
|
186
186
|
|
187
|
-
ちょっと判断に迷いますが、
|
187
|
+
ちょっと判断に迷いますが、できれば入力処理には汎用性をもたせて流用したいところですね。内部の判定などのロジックは変わると思うので、そういった部分だけ書き換えれば済むようにします。当然、それを前提にしたデータ構造にする必要があるでしょう。
|
188
188
|
|
189
189
|
|
190
190
|
|
1
クラスを分ける場合について追記
test
CHANGED
@@ -150,7 +150,7 @@
|
|
150
150
|
|
151
151
|
|
152
152
|
|
153
|
-
ところで、最初のコードはオリジナルから2箇所書き換えたんですが、気づきましたか?
|
153
|
+
ところで、最初のコードはオリジナルから2箇所書き換えたんですが、気づきましたか? 私がいきなり見せられたら見落とす自信があります。見落とすということは、凡ミスがあっても、バグが埋もれていても、気づけないということです。こういうコードは困ったコードです。
|
154
154
|
|
155
155
|
|
156
156
|
|
@@ -158,6 +158,44 @@
|
|
158
158
|
|
159
159
|
|
160
160
|
|
161
|
+
DataクラスをBaseクラスとKakouクラスに分ける場合、文字通り解釈するのであればクラスを継承することになります。
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
```python
|
166
|
+
|
167
|
+
class Base(Data):
|
168
|
+
|
169
|
+
... # 変更点についてはメソッドをオーバーライド
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
class Kakou(Data):
|
174
|
+
|
175
|
+
... # 変更点についてはメソッドをオーバーライド
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
```
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
ただ、元のDataクラスが汎用性の高い作りにはなっていないので、`show_all()`は使い回せると思いますが、他はすべて書き直すことになると思います。何のために継承しているのかよくわからない事態になりそうです。
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
ちょっと判断に迷いますが、少なくとも入力処理には汎用性をもたせて
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
なお、質問文のコードでやっているのは「クラスを分ける」といった行為ではなく、「一つのクラスになんでも書いてしまう」という行為です。これを俗に神クラスと言ったりします。典型的なアンチパターン(不適当とされるコードのパターン)の一つです。
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
---
|
196
|
+
|
197
|
+
|
198
|
+
|
161
199
|
こんな感じで改善していくことはできると思いますが、どこまでやっても、車輪の再発明にしかなりません。
|
162
200
|
|
163
201
|
|