複合構造の設計に関する問題があります。一般的な数式を記述する Expression 抽象クラスがあります。アイデアは、式が原子式 ("x" や "3" など) または原子式のある種の集合体 (要約、積、累乗など) である可能性があるということです。これは Composite パターンによって適切に記述されることが判明したため、たとえばクラス Summatory は OperationTerm から継承され、さらに Expression から継承され、Expression 用語のリスト「オージェンズ」が含まれます。
いくつかのプロパティに基づいてこれらの式のいくつかを特殊化しようとするまでは、すべて問題ありません。たとえば、式が単項項の要約で構成されている場合、クライアント コードに対して透過的な方法で特定の種類の演算 (積分や微分など) を最適化するために、多項式として「ラベル付け」する必要があります。 (これは Expression オブジェクトのみを処理する必要があります)。
この種の構造を(おそらく拡張可能な方法で)どのように設計できるかについて、誰かが考えを持っていますか?