https://nekogata.hatenablog.com/entry/2018/09/10/163206
この記事がはてブで大絶賛されてるが、個人的にはセンス無いなーと感じたので言語化してみる。
今回の仕様を図で書くと
みたいな感じになるとする。
すると、今回スライドで問題視しているのは矢印の右側の通知の部分が1クラスに共通化されている点。
しかし、オブザーバーパターンの出番は図の矢印の部分が絡まり合って処理が複雑になってしまった場合。
今回は1つのイベントから複数のリアクションが発生することは想定しないので
オブザーバーが不要なのは当然。選択肢に出てくるほうがおかしい。
そもそも問題認識(通知部分が問題)と解決策(矢印部分を解決)がズレてるから話がおかしな方向にいってる。
Notificationクラスのサブクラスを作ろう、ならまだ分かる。
確かに設計を言語化するのは大事だが、言語化というのは「それっぽいことは幾らでも言える」危険性がある。そもそもプログラミングというのは芸術であり文学なんだから、センス無いのに言語化を頑張っても「一見それっぽく聞こえるけど間違ってる説明」しか出てこない。