The Flyweight pattern can be used to reduce object instantiations of Rule objects thus improving performance.
Consider using the mediator pattern in the RuleEngine sequencer for complex sequences of business rules. This will reduce the complexity of the individual Rule objects and the RuleEngine itself.