8/11

ログイン試行のIPアドレスの履歴などをログで保存する必要があります。
このログはプレゼンテーション層へのアクセスログなのでドメインに関わるものではありません。
これをDBで永続化して保存する必要があるのですが、どう構成すべきか悩んでいます。
リポジトリの実装はインフラ層に置くとして、リポジトリのインターフェースをドメイン層のパッケージの中に置くのに違和感があります。プレゼンテーション層で完結した情報のログで、ドメインの情報ではないためです。

こういうとき、プレゼンテーション層のパッケージの中にリポジトリのインターフェースをおくというのは変でしょうか。
リポジトリのインターフェースがドメインとプレゼンテーションに散らばるのは良くないパターンなのか、あるいは、各々の責務に基づいてそのように分けるのは適切なのかご意見いただけますでしょうか。

関心がプレゼンテーション層に閉じるのであれば、永続化の口もプレゼンテーションに配置して良いと思います。リポジトリというのはドメイン層のオブジェクトを集約単位で出し入れするものです。出し入れするものがドメイン層のオブジェクトでない、プレゼンテーション層の関心ごとのオブジェクトであれば、それはリポジトリという名称を使わない方が良いでしょう。「永続化=リポジトリ」ではないのです。 プレゼンテーション層にXxxLoggerなどの名前でインターフェイスを定義し、実装クラスもプレゼンテーション層に配置で問題ないと思います。

スポンサーリンク

スポンサーリンク

スポンサーリンク