私はプロジェクトの構築方法を掘り下げているので、私はOnion Architectureを見つけました。私が理解している限り、それはデータベース駆動型ではなく、ドメイン中心のアーキテクチャです。オニオンアーキテクチャでリポジトリの代わりにサービスを公開するのはなぜですか?
私は苦労の理解を抱えている私は勉強とアーキテクチャについての詳細を学ぶためにいくつかのgithubのプロジェクトを探していますので、私はこの1つhttps://github.com/chetanvihite/OnionArchitecture.Sample
が見つかりました:
彼が使用してどのようにnamespace Domain.Interfaces
{
public interface IUserRepository
{
IEnumerable<User> GetUsers();
}
}
namespace Services.Interfaces
{
public interface IUserService
{
IEnumerable<User> GetUsers();
}
}
namespace Services
{
public class UserService : IUserService
{
private readonly IUserRepository _repository;
public UserService(IUserRepository repository)
{
_repository = repository;
}
public IEnumerable<User> GetUsers()
{
return _repository.GetUsers();
}
}
}
それはコンストラクタインジェクションによるものです。
private readonly IUserService _service;
public HomeController(IUserService service)
{
_service = service;
}
あなたはいつもそれを消費アプリに、このような
IUserService
としてサービスを公開するのですか?しかし、私は気づいた、IUserRepository
は、IUserService
と同じ方法がありますか?インフラストラクチャに関する懸念がある場合は、それは意味ですか、それともデータベースに関係していますか?そうじゃない?そうでない場合は、インフラストラクチャに関する懸念の例は何ですか?
- 玉ねぎのアーキテクチャについてもっと学び、学ぶためにダウンロードできるフリープロジェクト/ githubプロジェクトに関するお勧めはありますか?私は例をよく理解しています。
P.S. 私はタマネギのアーキテクチャを学んでいるので、必ずしもそうでなくても、少なくともDDDについて言及しています。だから私は推測する、私はまた、DDDを学習することがあります:)サービス対
いくつかのコードとDDDにおけるサービスの種類については非常に良い記事、:http://gorodinski.com/blog/2012/04/14/services-in -domain-driven-design-ddd/ – guillaume31