哪种依赖注入适合 MVC 模式?

Which dependency injection is appropriate in the MVC pattern?

让我举个例子说明一下。

目前有团队和成员作为模特。

class Member {
  String name;
  Team team;
}
class Team {
  String teamName;
}

有一个可以访问会员数据库的 MemberRepository。

public interface MemberRepository {
  public Member findByName(String name);
}

可以查询Member的MemberService是否存在

@Service
Memberservice {
    @Autowired
    MemberRepository memberRepository;
    
    public Member searchMember(String name) {
       return memberRepository.findByName(name);
    }
}

在这种情况下,创建TeamService时 如果需要查询member,注入Memberservice和MemberRepository哪个好?

遵循单一责任原则,您应该努力让您的 类 专注于做一些相关的事情。考虑到这一点,MemberService 应该是唯一一个管理成员的人,这包括成为唯一一个接触 MemberRepository 的人。话虽如此,你绝对应该注入 MemberService.

根据一般经验,您应该避免使用同一个存储库的多个服务。如果你不这样做,你可能会得到意大利面条代码。这意味着服务应该在它们之间“通信”。