Tim Van Wassenhove home

Very often we have to manage objects and their changes over time. Usually we implement this by adding a [Range](http://www.timvw.be/presenting-a-generic-range/) to the data. [Martin Fowler](http://martinfowler.com/) has a name for this pattern: [Effectivity](http://martinfowler.com/ap2/effectivity.html) and i have an implementation for the following interface

public interface IEffectivity<T> : IComparable<ieffectivity<T>>
{
	T Element { get; }
	IRange<dateTime> ValidityPeriod { get; }
	bool IsEffectiveOn(DateTime validityDate);
}

Feel free to download IEffectivity.txt, Effectivity.txt and EffectivityTester.txt.