2009 Advent Calendar December 15th
So instead of the generic for the lock we had yesterday we can add a default constructor for convenience in the code and keep the constructor injection for the test code:
1: public class ImportantProvider<T> where T : ImportantInterface, new()
2: {
3: private T _importantObject = new T();
4: private Lock _lock;
5:
6: public ImportantProvider() : this(new MutexLock())
7: {
8:
9: }
10:
11: public ImportantProvider(Lock aLock)
12: {
13: _lock = aLock;
14: }
15:
16: public Transaction Transaction
17: {
18: get
19: {
20: return new Transaction(_importantObject, _lock);
21: }
22: }
23: }