我试图在java中找到一个MVC设计模式的例子。
这是我从阅读中了解到的,如果我错了,请纠正我:
我有模型部分,这是程序背后的逻辑,假设我们有一个电话簿,所以添加和删除数组中的联系人将是模型。
Gui是视图,它包含按钮,点击它们后,模型正在改变。
我想要了解的是什么是控制器部分,是ActionListeners吗?如何在实践中分离这些模块。
谢谢
答案 0 :(得分:0)
控制器通常是MVC的一部分,人们最难定义。在您的示例中,它是加载和操作电话簿的位,以及选择使用哪个视图的位。
答案 1 :(得分:0)
我已经使用MVC很长一段时间了,并发现它是接近软件设计的绝佳机制。在你学习的过程中,我的建议是首先将所有作为控制器。换句话说,创建一个具有包含状态(模型)的成员的类以及显示和操作该状态(视图)的成员。使类的功能从视图中获取输入,修改数据,然后更新视图(控制器)。
这显然没有体现设计模式所要求的分离,但它将帮助您快速学习识别什么是清晰视图组件以及什么是清晰模型组件。然后花一些时间将独立的模型对象(这是最简单的)和后来的独立视图对象分离出来。单独的文件/对象。
对一个或两个项目执行此操作后,分离将开始变得更加自然和明显,并且当您开始编写代码(设计阶段)之前,您将启动新项目各种事情都在哪里。
从个人经验来看,如果你试图在没有真正开发经验的情况下对所有事情进行分类,我认为你更倾向于过度思考并做太多工作。你会发现,如果你花一些时间以一种自然的方式编写一个项目,然后随着时间的推移而破坏它,或者说它会更有意义。
答案 2 :(得分:-2)
在你的例子中,两者似乎趋同。
但是,请以下列情况为例 工厂范围的内部联系簿 在这种情况下(让我们假设),大多数用户无法将联系人添加到地址簿中 只有人力资源部门才能在列表中添加新联系人(=员工) 我们现在有3个真正独立的代码:
你的场景的“问题”在于它可能不是MVC的经典之作 MVC意味着反对称。也就是说,并非所有“观众”都相似,有些是“特殊”/管理员,并且比“常规”观众有额外的好处。
希望它清除一切。