2009 Advent Calendar December 14th


But if we’re using generics; why not do it for the lock too:

1: public class ImportantProvider<T,L> where T : ImportantInterface, new() where L : Lock,new()
2: {
3: private T _importantObject = new T();
4: private L _lock = new L();
5:  
6: public Transaction Transaction
7: {
8: get
9: {
10: return new Transaction(_importantObject, _lock);
11: }
12: }
13: }

But that leads to test code with static fields for verification. And I didn’t like that before either… So it is a good idea to back that change out event though the ImportantProvider looks very neat with it IMHO.

Comments (0)