我有一个问题陈述,我需要以一种在运行时决定行为的方式设计类。
类层次结构如下;
Base
______________|________________
| | | |
Drvd-A DrvdB DrvdC Drvd-Generic
“Drvd-Generic”类型的实例原则上应该继承任何类“Drvd-A”、“Drvd-B”或“Drvd-C”在运行时的行为。
实例“Drvd-Generic”的行为将在运行时决定,也可以在运行时更改。例如; - 创建实例 Drvd-Generic;- 在特定时间和特定条件下,Drvd-Generic 应该继承 Drvd-A 的行为;- 在触发一些更改后 Drvd-Generic 应该继承 Drvd-B 的行为;
这将在运行时在某些条件下发生,并且 Drvd-Generic 的实例在程序的生命周期内将是相同的。
建议最适合的设计模式以适应这种情况。