这种设计模式存在问题吗:Main --> Graphics <--> Data?

我正在考虑一种用于显示图形的总体设计模式,我想知道它是否存在问题。

以下是我正在考虑的设计模式:

一个 Main 类中的 setup() 方法告知 Graphics 类创建一些图形元素:例如,两个正方形和一个椭圆形。

Graphics 类生成每个元素所需的参数,并将它们存储为表,并将表发送给 Data 类。

当应用开始绘制时,Main 中的 draw() 函数告诉 Graphics 类绘制所创建的对象。

然后,Graphics 类要求 Data 类将在 setup() 过程中发送的所有表格都交回,并使用它们绘制元素。

Main 命令 GraphicsGraphics 命令和查询 Data。我相信这是一种已知的模式:通常和它有关的问题是否存在?

点赞
用户1305540
用户1305540

你正在做的事情(基本上是模型-视图-控制器),在工业和应用程序开发中是常见的。它运作得相对良好,尽管没有编程范例是毫无缺陷的。话虽如此,MVC是为在大型项目上工作的大团队而设计的。多个人在一个Codea项目上合作是不可行的,因此,考虑到你是在自己工作,我猜想这个项目规模会比较小到中等。在像这样的项目上单独工作时,务实、直观的方法是最好的选择。

在像这样的项目上使用MVC就有点像建立一个完整的民主制国家,包括国会/议会、元首和法庭系统,仅仅是为了管理一个单一的家庭的事务。民主制是好的,而且选举和制衡的强大系统是保持系统平稳运行的唯一方式。然而,在家庭中,尽管仍然需要维护秩序和幸福,但方法完全不同。

对你来说,你所能做的最好的就是思考你在脑海中的思维结构。你是将一堆敌人看作一个单一的实体,还是看作一系列自主的对象?你是否将飞船视为完美的数学属性集合,还是视为用户在屏幕上进行交互的图像?当暂停屏幕出现时,游戏屏幕是否仍然存在,只是被隐藏了,还是已经停止存在并被替换了?

此外,你如何构建思想?你是从广泛的类别开始,逐渐进入细节,还是你心中有一个生动的图像,你为之建立一个世界?你对程序的概念是否包括一个巨大的流程图,在某些点上与现实交汇,还是一个互相发送消息的节点集合?所有这些问题只有你自己能回答。如果你自然而然地倾向于MVC,你可能会想坚持它。如果你在书中读到它,并且决定,即使你不真正明白它为什么有用,它也必须是一些魔法粉末,你可以在任何项目上撒它使它变得容易,我建议你重新考虑一下。

祝编码愉快!

顺便说一下,我认为这个问题更适合发布在 Stack-Exchange programmers 而不是 Stack Overflow。这是个微妙的区别,但Stack Overflow是用来处理像漏洞修复和算法这样的事实,而程序员则是处理关于如何编写软件的观点

2013-01-05 21:08:06