我很抱歉提出这样一个本地化的问题,但在得到确认之前,我对自己的项目没有信心。
我已经阅读了很多关于模板模式的内容,Wikipedia有一个很好的例子。
它显示您创建基本虚拟方法,然后继承基类并覆盖所需的位置。网站上的例子是Monopoly和Chess,它们都继承了基类。
所以,我的问题是,如果你的应用程序只是国际象棋而且从来没有其他任何东西,那么使用模板模式会有什么好处(除了教育练习之外)吗?
答案 0 :(得分:9)
不,我认为属于“You Ain't Gonna Need It。”
类别更具体地说,存在设计模式来解决特定问题,如果您的代码不需要解决该问题,他们所做的就是添加代码行而不会有任何好处。
答案 1 :(得分:2)
没有。以非常简单和肤浅的方式表达,模板模式从总代码大小和模板化代码大小之间的某种关系开始是值得的。在你的例子中,国际象棋游戏将是整个程序,所以这里不需要使用模板模式。
答案 2 :(得分:2)
模板模式用于特定情况。当您想要绘制算法但使具体步骤不同时使用它。
这个可能在国际象棋应用程序中很有用。但是,您不应该开始开发一个应用程序,其概念是“我将使用此模式,并且那个和...”。相反,您开发代码并发现需要某些模式。
这是测试驱动开发方法非常方便的地方。它允许您在每一步中重构代码。
一本很好的书解释了这是Refactoring To Patterns。
答案 3 :(得分:1)
我建议你写下你的国际象棋游戏,如果将来又回来改变东西以适应垄断。但是如果你想使用模式来学习模式,那就完全不同了,在这种情况下,开始简单就好了,因此复杂性更容易理解。
答案 4 :(得分:1)
这实际上取决于程序的各个部分。模板的整个想法是拥有一个永不改变的算法,并能够添加或编辑该算法的某些步骤。
很可能你永远不会改变,但是,这是设计原则的问题,这是一个很好的做法,你可能会希望你实现它们。我会说,如果你100%肯定,那么你可以把它留下来,因为它通常可以节省时间和代码行。取决于您是否要学习模板使用。
同样GOF principles website非常好: