关于如何设计解释程序的想法?

时间:2011-12-10 03:41:18

标签: java

一些背景。

我目前正在使用Java开发分布式系统。代码大部分都是手动编写的,包括客户端服务器框架和要提供的应用程序。该应用程序用于运行基于回合的系统。

设计问题。

应用程序应该几乎完全可配置。程序的基础是一个处理器,它将以链表样式处理对象,从链中的一个对象移动到下一个对象,直到处理完成。我已经用它编写了一个简单的二十一点游戏,没有什么可以实现API的东西。我遇到的问题是我不确定对象的粒度。我知道我不想编写编程语言风格的体系结构,例如,类来表示添加,减去和其他语言结构,但我希望体系结构足够灵活,以便用户可以在其功能中指定程序,在一个文件中,让这个构造实例化正确的类链接它们,然后运行sudo程序。

任何建议和/或想法都会有所帮助。

提前致谢, ZIX

1 个答案:

答案 0 :(得分:4)

这种事情非常艰难,主要是因为要求如此广泛。当我们看到高度灵活和可配置的成功的,真实的平台时,很容易认为他们是以这种方式开始的,或者你可以从一开始就设计它们。

事实并非如此。

现实更多的是挑选一部分问题。在你的情况下,不仅仅是一般的回合制游戏,甚至回合制的纸牌游戏,而是二十一点,其次是其他游戏(桥牌,扑克,无论如何),然后你在此基础上进行构建。

让您的应用程序(及其功能)根据实际需求而增长,而不是您认为需要解决的问题集。在您尝试构建实际游戏时,请关注您面前的问题。随着时间的推移,您将确定要抽象的部分(以及哪些部分不抽象),同时您实际上可以为其展示一些内容。

走另一条路,你会有一个有趣的想法,没有人用来解决实际问题的API,以及一堆代码但没有游戏。不要自欺欺人地认为没有人试图为回合制游戏构建 平台。它被尝试了1000次。它之所以不存在的原因是因为构建没有明确目标的平台(即导致完成游戏的一系列要求)会导致您无法明确使用软件。

这意味着它们不会被使用,游戏无法构建,您从未听说过它们,因此它们不会成功。成功,灵活的平台在其整个生命周期的许多阶段都有很多使用它们构建的成功应用程序。