依存性注入は、n層アーキテクチャに関連するため、関心の分離に違反しますか?
次のプロジェクトがあるとします。
MyApp.Data
MyApp.Business
MyApp.Web
DIを使用して、使用するデータコンテキストをビジネスレイヤーに指示する場合、これはSoCに違反しませんか?これは、UI(MyApp.Web)がデータアクセス層(MyApp.Data)の知識を持って、ビジネス層(MyApp.Business)にどのコンテキストを使用するかを指示する必要があることを意味します。
public class WebForm {
public void Save(Object dto) {
BusinessObject bo = new BusinessObject(Data.MyDataContext);
bo.ValidateAndSave(dto);
}
}
私は常に、n層アーキテクチャでは、各層が次の層(UIからビジネス、ビジネスからデータ)の知識のみを持つべきだと考えていました。これは本当に大したことではありませんか?