2010-05-03 5 views
0

Je me demande où trouver des interfaces de modèles.où trouver des interfaces "template"?

par ex. Je crée ces classes qui implémente iLog:

DatabaseLog 
ScreenLog 
FileLog 

Je me demande quelles méthodes devraient avoir une classe Log typique?

Y a-t-il un ensemble d'interfaces que vous pourriez simplement implémenter/apprendre plutôt que de réinventer la roue et de penser aux noms des méthodes.

par ex. Interfaces:

iLog 
iDatabase 
iErrorMessage 
etc. 

Merci

Répondre

1

PHP définit les interfaces suivantes (devraient, mais peuvent ne pas être complète):

  • Traversable - L'interface Traversable
  • Iterator - L'interface Iterator
  • IteratorAggregate - Interface IteratorAggregate
  • ArrayAccess - L'interface ArrayAccess
  • Serialisable - L'interface Serializable
  • Countable - L'interface Countable
  • OuterIterator - L'interface OuterIterator
  • RecursiveIterator - L'interface RecursiveIterator
  • SeekableIterator - L'interface SeekableIterator
  • SplObserver - L'interface SplObserver
  • SplSubject - L'interface SplSubject

Voir

En ce qui concerne l'interface Logger, je dirais qu'il devrait avoir une méthode log($message, level) et rien d'autre.

+0

merci pour les liens! concernant l'interface de l'enregistreur. Ne devrait-il pas y avoir une méthode appelée read()? ou est-ce une autre interface qui est responsable de la lecture? –

+0

@fayer dépend de ce que votre Log est censé faire. Je supposais que vous parlez d'un LogWriter. Si votre journal peut lire et écrire, pourquoi ne pas séparer ces problèmes en deux interfaces et demander à votre Logger d'implémenter LogWriter et LogReader et de lui donner une méthode write() et l'autre une méthode read(). – Gordon

+0

qui était en fait une belle séparation. Je penserai à les séparer ou à les avoir dans une interface, bien qu'il semble que chaque enregistreur devrait avoir la capacité de lire aussi. –