【发布时间】:2011-08-10 20:10:53
【问题描述】:
我在尝试设计课程时遇到了麻烦。
我有抽象的Chip 类,STM8 类,它扩展了Chip 并实现了IConfigurable(具有配置方法)。
我希望每个实现 IConfigurable 的类都有一个方法 Configure,它使用一个参数来决定配置什么,使用策略模式(方法)。
伪代码:
public void Configure(Periphial p)
{
this.periphials[p]();
}
当然,每个类的配置都不同。例如,STM8 可以有 GPIO 和定时器,STM8L 只能有 GPIO。然后,每个子类的创建方式应该是防愚蠢的,所以我想强迫人们在他们的类中声明他们自己的enum。
最后,用一对枚举/委托来初始化字典以显示可以配置的内容是否是个好主意? this.periphials在上面的伪代码中使用?
【问题讨论】:
-
你的伪代码是什么意思?我也看不到这里的策略模式。
-
您尝试过哪些方法?这似乎更像是一个哲学问题。
-
这是一种使用外围枚举调用某些配置器然后执行其委托(指向同一对象内的成员方法的指针)的方法。抱歉,我这里有不止一个问题。
-
@BrokenGlass 您个人资料上的第二张图片已损坏。而且我不知道 106 在问什么问题。
-
@BrokenGlass,每个策略都取决于外围。代码缺少使用 Periphial.GPIO => ConfigureGPIO 方法分配字典的内容。
标签: c# oop design-patterns