繁体   English   中英

组织应用程序的最佳方法?…(MVC设计模式)

[英]Best way to organize applications?… (MVC design pattern)

在构建应用程序时,最好的方法是确定将要去哪里。 您如何知道要在哪些控制器和模型中添加哪些功能。 例如,我正在构建一个高度基于位置的应用程序。 用户可以发布不同的内容,这些内容又会在一定距离内显示给其他用户。 此外,每个用户都有自己的个人资料页面,该页面将显示该用户发布的所有内容,而不管其位置如何。

所以我有这样的模型

class UserModel extends BaseM{
  get_user($uid);
  get_all_users();
  edit_user($new_data);
  delete_user($uid);
  add_user($new_user);
  get_user_articles($uid);
  get_user_reviews($uid);
  get_user_foo($uid);
}

class ArticleModel extends BaseM{
  get_article($aid);
  get_all_articles();
  add_article($new_article);
  delete_article($aid);
}// similar to ReviewModel, and other models

class LocalModel extends BaseM{
  get_local_articles($zip_code, $range);
  get_local_reviews($zip_code, $range);
  get_local_foo($zip_code, $range);
}// holds all location related functions

如您所见,我将与userModel中需要处理用户(需要一个userID)的所有东西,与localModel中需要处理位置(需要一个邮政编码)的所有东西混在一起,然后其他所有东西都有自己的模型。

我想知道什么是找出问题所在的最佳方法,这种方法是否像经验法则一样?

好吧,您已经有80%了。 您已经打破了模型,这是一场艰巨的战斗。 接下来,设计所需的应用程序。 如果最后在多个页面上有很多重复的“元素”,那么每个元素都应该是一个视图。 否则,每个页面都应该是一个视图。 或两者的某种组合。

一旦定义了页面并且知道了应用程序的数据流,剩下的就是控制器。

在小型应用程序中,具有单个控制器可能是实际的。 或者对于非常复杂的应用程序,您可能有多个控制器-每个“页面”最多只能有一个。

请记住-模型应该与视图无关(您可以在不影响模型的情况下重新设计UI)。 视图应该对数据的来源或去向不了解-所有内容都通过控制器进行过滤。

在这里查看我先前对类似问题的回答:

我通常使用这种方法:尝试将其放置在某处。 如果一段时间后使用它时感觉很尴尬,则说明位置不合适。

通常,每个模型类都应具有对自己有意义的方法,并最终返回其他模型。 不要在模型中放置过多的计算智能。 如果在任何一个类中都感到有些奇怪,那么可能会发现两者之间存在第三类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM