An interface introduced in 2022 for testing, which turned out to be where a module could be cut out.
interface SubscriptionEngine
{
public function entitlementsFor(Customer $c): Entitlements;
}
// one implementation for four years, and when the
// product line was discontinued the whole module came
// out behind this one method — replaced by:
final class EverythingEnabled implements SubscriptionEngine
{
public function entitlementsFor(Customer $c): Entitlements
{
return Entitlements::all();
}
}
A seam created for a reason that turned out to be secondary is the usual story with the interfaces that matter — the tests were fine either way and the deletion would have been a fortnight without it. It is also unfalsifiable as a design principle, because the four other speculative interfaces from 2022 never acquired a second use.