我首先阅读了Head First Design模式,并对常见的设计模式有了基本的了解。 当我正在iOS上工作时,我正在学习Objective C.并且遇到了各种设计模式,通过动态语言应用并了解事物。
但是,我仍然希望确定在此示例问题中使用的模式的适当选择。
并且可能是关于如何提高这些技能的一些提示。
这是问题所在。
有连锁酒店。 LakeWood,Rosewood和xyzWood有三个分支。 所有这4种费率取决于组合,无论是工作日,周末,客户是奖励还是定期。
用户输入是他希望留在酒店及其类型之一的一系列日期。 输出应该是最好的酒店,取决于哪个是最便宜的住宿。 在平局的情况下,每个酒店都会有评级,而评分更高的评级则决定领带。 和程序应该是灵活的,以便新的算法可以用来找到最好的酒店,如果酒店结构的任何变化或更多的酒店被添加。
我带来了以下关于java的课程。
我被困在这里。我希望有人能帮我解决这个问题。
答案 0 :(得分:1)
我认为@root选择了策略(http://en.wikipedia.org/wiki/Strategy_pattern)因为这句话“程序应该灵活,以便可以使用新算法找到最佳酒店”。
似乎对于每种类型的酒店,可能有不同的方式来评估它们,因此策略可以是一种方式来评估每个酒店的不同方式。
这种方法会将数据(酒店bean)与评估算法分离(或者我们称之为“特征向量函数”?)。
答案 1 :(得分:0)
我认为模板方法模式更适合这里。 1.创建酒店界面 2.创建3个酒店类(实现酒店界面)LakeWood,Rosewood和xyzWood
现在创建客户类,它也会有一系列日期。
这里的Customer类和酒店类都是独立的。
现在创建一个接口说LogicInterface,它将有一个方法,这个方法会 通过客户和列表酒店作为参数,将返回最便宜的酒店。 现在我们将创建实现LogicInterface.cheap的类,酒店查找逻辑将是 在这堂课上 这里将使用“模板方法模式”,因为后来和最便宜的酒店发现 逻辑被改变,我们将创建将实现LogicInterface的新类 只需一行更改即可完成我们的工作,不需要进行任何代码更改。