W question o przydatności IoC kontenera, wygrywając submitter wspomnieć, że z kontenera IoC można zrobić tak:Kod Cruft. IoC na ratunek
public class UglyCustomer : INotifyPropertyChanged
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
string oldValue = _firstName;
_firstName = value;
if(oldValue != value)
OnPropertyChanged("FirstName");
}
}
private string _lastName;
public string LastName
{
get { return _lastName; }
set
{
string oldValue = value;
_lastName = value;
if(oldValue != value)
OnPropertyChanged("LastName");
}
}
}
do tego:
var bindingFriendlyInstance = IoC.Resolve<Customer>(new NotifyPropertyChangedWrapper());
Pytania:
- Który magiczny kontener IoC zapewnia tę dobroć?
- Przykład implementujący to?
- Jakieś wady?
- W projekcie ze złożonymi zależnościami, czy będę płakać, gdy spróbuję zastosować powiązanie danych z tymi obiektami?
Jestem prawie pewna, że odpowiedź to tylko drażnienie się z "pomysłem", a nie rzeczywistą implementacją. –
@chibacity. W takim przypadku Ben Scheirman jest lepszą złośliwością niż jakakolwiek dziwka, jaką kiedykolwiek widziałem. (W filmie, oczywiście). – AngryHacker
, jeśli potrzebowałeś Klienta bez logiki, ale czystego DTO i powiadomień o zmianie właściwości, lepiej byłoby zadeklarować go jako interfejs, ICustomer, i to nie jest duża sprawa, aby stworzyć konkretną klasę z dynamicznym generowaniem kodu. –