Câu hỏi được gắn thẻ «dependency-injection»

Dependency Injection, là một mẫu thiết kế trong đó các phụ thuộc (thể hiện của các đối tượng, thuộc tính) của một thành phần được đặt thông qua (các) hàm tạo, phương thức hoặc trường (thuộc tính). Nó là một hình thức đặc biệt của đảo ngược phụ thuộc tổng quát hơn.


5
Lợi ích của việc tiêm phụ thuộc trong trường hợp hầu hết mọi người đều cần truy cập vào cấu trúc dữ liệu chung?
Có rất nhiều lý do tại sao toàn cầu là xấu xa trong OOP. Nếu số lượng hoặc kích thước của các đối tượng cần chia sẻ quá lớn để có thể được truyền một cách hiệu quả trong các tham số chức năng, thông thường mọi người đều khuyên …




2
Có bằng chứng nào cho thấy việc sử dụng tiêm phụ thuộc giúp cải thiện kết quả trong công nghệ phần mềm không?
Mặc dù mức độ phổ biến của nó, có bằng chứng thực nghiệm nào cho thấy Dependency Injection (và / hoặc sử dụng thùng chứa DI) giúp, nói, giảm số lượng lỗi, cải thiện khả năng bảo trì hoặc tăng tốc độ phát triển cho các dự án phần mềm …





3
Hãy bán cho tôi trên các container IoC
Tôi đã thấy một số khuyến nghị sử dụng các bộ chứa IoC trong mã. Động lực rất đơn giản. Lấy mã phụ thuộc sau đây được tiêm: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> …


4
Nên tiêm phụ thuộc vào ctor hoặc theo phương pháp?
Xem xét: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } chống lại: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use …


5
Tôi có thể sử dụng Dependency Injection mà không phá vỡ Encapsulation không?
Đây là Giải pháp và dự án của tôi: BookStore (giải pháp) BookStore.Coupler (dự án) Bootstrapper.cs BookStore.Domain (dự án) Tạo BookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infr Hạ tầng (dự án) Tạo BookCommandHandler.cs Xác nhậnCommandHandlerDecorator.cs BookStore.Web (dự án) Toàn cầu BookStore.BatchProcesses (dự án) Chương trình.cs Bootstrapper.cs : public static class Bootstrapper.cs …

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.