簡體   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