【发布时间】:2009-03-28 21:22:24
【问题描述】:
我正在编写一个引用匹配程序,其中需要两个抽象工厂模式,这是两个接口; QuoteFactory 和 ModeFactory。 ModeFactory 在 EasyMode 和 HardMode 之间切换,QuoteFactory 挑选出几个不同主题之间的 Quotes(即 PoliticalQuotes、SportsQuotes)。简而言之,用户将选择一种模式,如果选择 EasyMode,则用户必须猜测报价,而如果用户选择 HardMode,则告诉用户是谁说的,然后必须猜测,所以 Quotes 的实现将根据模式以及所选的报价而变化。
到目前为止,我已经将 ModeFactory 创建为接口并将其实现为 EasyMode 和 HardMode,但现在我需要以某种方式将另一个抽象工厂模式(或更多)集成到这些模式中,以便可以选择引用。如果有帮助,我还创建了一个 Quote 类,其中定义了我的 Quotes。
谁能帮我想出这些抽象工厂的基本实现?这是我到目前为止的大纲,虽然我不禁觉得我以某种方式把它复杂化了......
编辑:澄清我的意思:如果用户选择简单模式,那么他们会获得报价的开头和该报价的作者,而如果他们选择困难模式,他们只会提供报价单。例如
简易模式: “我感受到了……的力量” 何塞·穆里尼奥
困难模式: “我感受到了……的力量”
hard 模式不会让作者让用户更难猜出报价的其余部分。另外,这不是学校作业。我一直在阅读 Head First Design Patterns,现在我正在尝试将我学到的知识应用到不同的情况中(而不是他们的 Pizza 示例,我正在研究一个 Quote Guessing Game,在阅读完 QI(英国电视节目) 书。
public interface ModeFactory {
public Mode retrieveMode(String s);
}
public interface QuoteFactory {
public Quote retrieveQuote(String s);
}
【问题讨论】:
-
我不明白问题模式。简易模式:出现报价,用户必须选择正确的作者?困难模式:出现作者,用户必须选择正确的引用?每种情况下都有可能的答案列表吗?
-
在简单模式下,作者会得到报价的第一部分,然后用户可以猜测报价,而在困难模式下,只给出报价的开头。跨度>
-
你在说方言。 “报价的第一部分”和“只是报价的开头”有什么区别?
-
简单模式提供名称(例如 Jose Mourinho)和引语的前三个单词供用户猜测。困难模式会给出相同的引用,但没有作者。
标签: java design-patterns factory