Nerede OOP'deki statik yöntemleri saklamak için?

5 Cevap php

Ben bunu ... bir nesne oluşturmak ve idare düşünüyorum tam olarak ne yapar bir blog sınıf var. O kısmı güzel ve temiz.

Ben hızlı bir şekilde (ille blog nesne ile ilgili) benim veritabanında tüm bloglar bir dizi döndüren bir fonksiyon ihtiyacı şimdi duyuyorum. Bu nedenle, statik bir yöntem iyi bir seçim olacağını düşünüyorum.

Bu statik bir yöntem saklamak nereye Benim soru ise,? İşte Aklıma birkaç seçenek vardır:

  • (bu sınıf oluşturur nesne ile ilgisi yoktur, çünkü belki koklamak?) Blog sınıfında statik bir yöntem olarak saklayın

  • Blog statik işlevler için yeni bir sınıf oluşturmak (aşırı görünüyor)

  • (evet, ama ne?) tamamen bu konuda gitmek için daha iyi bir yol bulmak

5 Cevap

Muhtemelen bir şey oluşturmak birden fazla blog nesneleri yönetiyor? Eğer değilse, orada olmalı ve yöntem nereye ait bulunuyor - bu statik olması için gerek yok.

Onun içinde count yöntem olacaktır BlogService adlı bir sınıf / arabirimi oluşturun. Bu tür findAll, findById, vb gibi diğer yöntemler

Ayrıca bir sınıf veritabanı erişimi saklanması ve orada yeni bir yöntem ekleyebilirsiniz.

find a better way to go about this altogether (yes, but what?)

Model View Controller

Bu aşamada bir 'Kontrolör' için blog Transform

Tüm veritabanı yöntemleri işleyebilir bir 'Model' oluşturun

(Ayrıca Model gitmek için bu nokta Refactor tüm veritabanı isteklerini öneririz) istedikleri gibi sınıf Blog Modeli diyoruz.

(CodeIgniter MVC arama için çok iyi bir giriş için).

Statik yöntem, fakat statik değişken gerekmez. Statik yöntem dışında nesne almak ama sadece değişkenler değil nesnenin sadece fonksiyonudur.