天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます(たまに関係ない雑記も)

オブジェクト指向のこころを読む会 Vol22に参加してきた

yr-camp.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

今日もタイトル通りオブジェクト指向のこころを読んで応用問題を解いていきました。

今日は20章と21章が対象で、応用問題を解いていきました。

会の様子

20章応用問題1

凝集性が低く、変更容易性も下がってしまうという話が出ていました。

また、コードを書くときに考えることも多くなってしまうのもデメリットだよねという話をしていきました。

20章応用問題2

生成管理とオブジェクトの実体管理という2つの関心事を分離しているため、ファクトリを使うことで凝集度が高くなるだろうという話が出ていました。

20章応用問題3

クラスの実装が「使用するオブジェクト」から完全に隔離されるため、カプセル化が起こるよねという話をしました。(Open-Closed-Principleも保たれる)
これにより、変更が容易になり、テスティング効率も上がるという話がありました。

20章あなたの意見

ただ「考察してください」だけだと話が難しよねという前提を置きつつ、以下のような話をしていきました。

  • ファクトリ以外のパターンは生成性を持つパターンとも言えそう
  • 生成という関心事を蒸留させることで、よりドメインモデルの問題に深く立ち入ることができる
  • 個別オブジェクトが具体的にどのようなオブジェクトでありどのように作られるのか?というところを見えなくしてくれるので、オブジェクト指向設計によって作られたクラス群の利用がしやすくなる効果がある

21章応用問題

Singletonの文脈で考えれば、他のオブジェクトが使うときにそのオブジェクトがSingletonである必要があるということを意識しないといけないため、そのオブジェクト自身に持たせたほうが良いという話がありました。

21章あなたの意見1

普段の英語でSingletonという単語を使わないという話はありつつ、適切なのではないかという結論になりました。

一応ChatGPT的には、UniqueInstanceやSingleInstanceといった代替案もあるそうですが、一番Singletonが的を射ていそうだという結論になりました。

21章あなたの意見2

概ね同意できるという意見や、見ている立場が違うので、過少も過大もないのではないか?(Javaエンジニアからしたら使えないパターンだという理由で価値が薄れるのは当然だし、アーキテクトからしたら言語に依存しない普遍的な価値が定義されているので価値があるのは当然)という意見が出ていました。

会全体を通した感想

ファクトリ系のパターンは効果も実感しているということもあったのか、過去に例を見ないほどすらすらと話が進みました。

いよいよ次回は読書会は最終回という説もあり、楽しみです。