Một từ: Không.
Thêm từ: tiêm phụ thuộc là chính xác đó. Đó là một phương tiện để bạn giới thiệu các tài nguyên mà một đối tượng khác phụ thuộc vào, nhưng không nên biết các chi tiết phức tạp của, từ một nguồn khác. Sử dụng DI không có nghĩa là KHÔNG CÓ trong chương trình của bạn nên biết cách tạo bất kỳ đối tượng nào khác; trên thực tế, tôi cho rằng rất khó khả thi đối với một chương trình không tầm thường để tránh hoàn toàn từ khóa "mới" (hoặc các lựa chọn thay thế dựa trên phản xạ). Tuy nhiên, DI có nghĩa là các đối tượng không nên biết cách tạo các đối tượng phức tạp đòi hỏi nhiều sự phụ thuộc sẽ kết hợp chặt chẽ đối tượng này với đối tượng khác, không nên có tất cả kiến thức liên kết chặt chẽ này.
Tôi sẽ nghiên cứu hai lý thuyết chính về thiết kế phần mềm O / O, GRASP và RẮN. GRASP sẽ bảo bạn nghiên cứu mục đích của đối tượng và tự hỏi: "Đối tượng này có chịu trách nhiệm tạo ra các đối tượng mới thuộc loại này không? Đó có phải là một phần của 'mô tả công việc' của đối tượng này không?" RẮN tiến thêm một bước: "S" là viết tắt của "Nguyên tắc trách nhiệm duy nhất", nói rõ rằng một đối tượng nên có một công việc và nó phải là đối tượng duy nhất trong chương trình thực hiện công việc cụ thể đó.
Vì vậy, GRASP thường khuyến khích bạn xem qua các lớp hiện có để tạo các đối tượng mới này và tìm một lớp có nhiệm vụ tạo đối tượng này phù hợp với những gì đối tượng đã làm, trong khi duy trì mức độ "gắn kết" mong muốn của bạn. RẮN sẽ cho bạn biết rằng sự gắn kết là chìa khóa; nhiệm vụ tạo ra các đối tượng này nên được giao cho một số nhà máy nên được đưa vào lớp của bạn. Tôi nghĩ rằng bạn sẽ thấy, vì sự phức tạp của chương trình của bạn tiếp tục phát triển, việc tuân thủ một trong hai phương pháp này, với sự sẵn sàng tái cấu trúc, sẽ dẫn đến các kiến trúc rất giống nhau.