質問: 単純なウェブサービスを作ろうとしています. ここで作成するクラスは以下の通りです. * ユーザークラス * グループクラス(ユーザーを集約する) * チャットチャンネルクラス(グループの中でのチャットを管理する) ここで、SQLを使ってデータを保存するとします. このとき、SQLではユーザーとグループとチャットチャンネルのデータが密結合になります. ですが、ソフトウェア上ではそれぞれはインターフェースとして存在します。 ここでの問題点は、例えば、ユニットテストのときユーザークラスのモックを作成したとしても、グループクラス・チャットチャンネルクラスはユーザーのデータをSQLから取得するため、正常に動作しないという点です. データ構造がお互いに依存しあっています. どのような設計にしたら良いでしょうか. よろしくおねがいします。
回答: 各クラスが「互いの実装に依存しない」のでしたら, 「ユーザーのデータを SQL から取得する」という実装に対しても依存していないはずではないでしょうか.