您不选择系统的设计模式;您为系统中的特定设计问题选择了一种设计模式。此外,有时候最好不要强迫某些东西成为某种设计模式。如果您遵循良好的OOP原则和SOLID,设计模式将自然地从您的代码中出现。
根据上面列出的要求,您确实首先想要设计系统。之后,一旦开始需要编写代码,就可以考虑针对特定问题的设计模式。一个示例可能是您需要对不同类型的数据执行相同的操作。为此,您将使用多态。如果您需要检查各种类型并且只有一种类型执行某些操作,那么您可能会考虑类似责任链设计模式。
但是你还没有,至少没有你问题中的细微要求。