Có mẫu gọi là Constructor injection. Mẫu này chủ yếu là hữu ích cho việc kiểm tra đơn vị và chia sẻ logic. Dưới đây là ví dụ
public class SomeClass
{
private ISomeInterface _someInterface;
public SomeClass() : this (null){} //here mostly we pass concrete implementation
//of the interface like this(new SomeImplementation())
public SomeClass(ISomeInterface someInterface)
{
_someInterface = someInterface;
//Do other logics here
}
}
Như bạn thấy ở đây, kiểm tra đơn vị sẽ dễ dàng bằng cách thực hiện giả mạo. Ngoài ra, logic được chia sẻ (DRY). Và Thực hiện tất cả logic bên trong hàm tạo có số tham số cao nhất
Nhưng trong trường hợp của bạn, null được truyền, do đó, đó là ngữ cảnh. Tôi phải biết ngữ cảnh của bạn là gì.
Nguồn
2013-02-13 18:58:50
Xem: [C# Constructor Chaining] (http://stackoverflow.com/q/1814953/) –
Nó dọn sạch API một chút và giảm trùng lặp mã bằng cách sử dụng lại hàm tạo tham số đơn ngụ ý. – JosephHirn