![]() |
1
4
一种可能的做法是采用类似于生成器设计模式的方法: 对于每种策略类型,都应该有相应的生成器(一个或多个)。构建器不能作为一个普通的构建器工作,它接收所有的init参数作为方法参数;相反,它应该 块 直到收到相关的输入。一些构建器将显示一个Swing对话框并等待,其他的将打印到控制台并等待输入,其他的可以从文件中读取,等等。在一个构建器接收到所有输入后,它可以创建策略实例并返回它。 这样就可以将数据检索逻辑与策略本身分离。 |
![]() |
2
1
这个问题的解决主要取决于什么决定了当前的策略。为了简单起见,我假设所有策略的UI都是相同的。
如果你想变得更有趣,你可以创建一个简单的工厂类,将创建的行为移除到它自己的类中:
|
![]() |
3
0
|
![]() |
4
0
我建议先搜索“参数化策略模式”。有文章可能正是你要找的 http://www.hillside.net/plop/2010/papers/sobajic.pdf |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 2 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 2 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 2 年前 |