MVC yaklaşımda, benim modeli işlevlerini ayırmak, ya da mümkün olduğunca o kadar birleştirmek gerekir?

2 Cevap php

Bu veri alanları almak bile, model fonksiyonlarını ayırmak gerekir?

Ben veritabanından Makaleler alır bir Makaleler modeli var diyelim.

I getUserArticles($id), bu kullanıcıların makaleler alır, bir işlevi var. I getAllArticles($offset, $limit), bu makalelerin bir listesini alır, bir işlevi var.

Ben iki işlevi birbirinden ayırmak, ya da bir şekilde bunları birleştirmek bırakmalısınız.

Ben, değiştirmek, eklemek veya sorgudan bir alanı kaldırmak için olsaydı, ben her işlev değişikliği yapmak zorunda çünkü ben sormak nedenidir. Ben fikrimi değiştirmek ve karar Yani eğer ben artık time_added her yazı için, her işlevi çıkarmak olurdu göstermek istiyorum.

2 Cevap

Bu API kullanıcıya iki farklı işlevi açığa ancak bu şekilde daha iyi kodu yeniden orada olacağına inanıyorum eğer dahili her ikisi için aynı kodu kullanabilirsiniz iyidir.

Örneğin: genel getArticles tanımlayacağız (dahili olarak kullanılır sadece)

   articles getArticles($userId, $offset, $limit) {
      // do searching while handling the different cases if $userId is set or not and the same for the offsets
    }

o zaman bu gibi maruz fonksiyonlarını tanımlar

   articles getUserArticles($id){
     return getArticles($id, -1,-1);
   }

  articles getAllArticles($offset, $limit) {
    return getArticles(-1, $offset, $limit);
  }

NOT: only do this if you believe there is common code between the two functions. If there is no common code then keep them separate and there is no need for the generic getArticles function which I suggested.

Yukarıdaki geçerli php kodu ise bilmiyorum ama ben fikir açık olduğunu düşünüyorum.

Ayrı tutun. Onlar mantıksal olarak ayrı demektir. Eğer bunları birleştirerek denedim varsa, fonksiyonları sayıda parametreleri ve karmaşık internals sahip bitirmek istiyorum. Basit tutun, ama basit. Bu küçük, kendi kendini açıklayıcı, yöntemleri sahip size bir sürü daha kolay hayat yapar.