当我有疑问时,我正在阅读Head First Design Patterns这本书。
在第一章中,研究他们教授的策略模式以制作可互换的课程。根据下图:
我的问题:如果我想制作一个具有可视化界面的桌面应用程序,并让某些用户比其他用户拥有更多的权限来管理 Ducks 及其行为,该怎么办?因此,他们可以例如FlyRocketPowered
在运行时创建行为。我怎样才能做到这一点?
我的意思是,将这些行为表示为类对我来说看起来很奇怪,因为我看不到如何在用户级别使它们可编辑,每次需要创建/删除/更改a FlyBehavior
、 aQuackBehavior
或子类时,用户将Duck
必须要求我通过创建/删除/更改类来修改源代码,但这不是我们想要的,我们需要一些更独立于开发人员的东西。
编辑
假设我想制作一个屏幕Add Fly Behavior
(只是添加,不编辑,不删除),会有两个字段,第一个是,第二个是调用方法Behavior Name
时要打印的内容。fly()
通过编辑源代码,我可以通过创建这样的类来做到这一点:
public class FlyRocketPowered implements FlyBehavior {
public void fly() {
System.out.println("I’m fl ying with a rocket!");
}
}
我需要做什么才能在用户级别做到这一点?