In a way, this is a real-world example of the Strategy Pattern: keep the stable structure fixed, while making the uncertain part replaceable later.
Open/Closed priciple
Open/Closed priciple