begin process at 2012 05 26 06:50:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > SERVICE DESIGN PATTERN / CHARGEMENT DYNAMIQUE DE SERVICES D'INTERFACES

SERVICE DESIGN PATTERN / CHARGEMENT DYNAMIQUE DE SERVICES D'INTERFACES


 Information sur la source

Note :
Aucune note
Catégorie :Class et Objet ( POO ) Classé sous :Service, Implements, Interface Niveau :Initié Date de création :25/11/2009 Vu / téléchargé :3 034 / 123

Auteur : aKheNathOn

Ecrire un message privé
Site perso
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note

 Description

L'interface en programmation objet en plus de définir une structure de classe peut également être considérée comme un contrat. C'est un peu la différence entre une interface et une classe abstraite qui elle aussi peut définir une structure de classe à implémenter.

Je reviens pas sur les concepts de POO, si vous souhaitez utiliser ce bout de code je présume de toute façon que vous les maîtrisez.

Ce petit bout de code vous permet de développer votre code en l'orientant en services qui exposent des implémentations.

L'avantage d'une telle programmation est que :

1. vous pouvez faire un système modulaire facilement modifiable.
2. l'utilisateur du service n'a pas à se soucier de la classe à instancier

Voir le code d'utilisation ci-dessous :

Source

  • <?php
  • // INIT SERVICE FACTORY
  • require_once('service.class.php');
  • // INIT SERVICE DEFINITION
  • require_once('services/driver.interface.php');
  • // INIT BASE CLASS
  • require_once('implementation/driver.base.php');
  • // INIT CONCRETE SERVICE CLASS
  • if (!isset($_GET['test'])) $_GET['test'] = 'ouioui';
  • require_once('implementation/'.$_GET['test'].'.class.php');
  • // TEST SERVICE
  • service::get('IDriver')->start();
  • service::get('IDriver')->speedUp();
  • ...
<?php
	
	// INIT SERVICE FACTORY
	require_once('service.class.php');
	
	// INIT SERVICE DEFINITION
	require_once('services/driver.interface.php');
	
	// INIT BASE CLASS
	require_once('implementation/driver.base.php');
	
	// INIT CONCRETE SERVICE CLASS
	if (!isset($_GET['test'])) $_GET['test'] = 'ouioui';
	require_once('implementation/'.$_GET['test'].'.class.php');

	// TEST SERVICE
	service::get('IDriver')->start();
	service::get('IDriver')->speedUp();
	...

 Conclusion

Le chargement modulaire n'est pas traité à ce niveau, à vous de savoir comment charger les bonnes classes dans le système car si deux classes implémentent la même interface vous aurez une exception de type duplicate service...

En php 5.3 j'aurais pû écrire dirrectement ceci :

service::IDriver()->start();
service::IDriver() ->speedUp() ...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

CLASSE WIKILOC
Source avec Zip OBSERVER PATTERN ORIENTÉ DÉVELOPPEMENT ÉVÉNEMENTIEL DÉCLARAT...
Source avec Zip Source avec une capture WHOIS DOMAIN CLASS : LOOKUP & AVAIBILITY
Source avec Zip Source avec une capture XML MAPPING TO CLASS OBJECTS / CHARGEMENT / PARSING / MODIFI...
Source avec Zip SQLDIFF : MIGRATION, VERSIONNING ET SYNCHRONISATION DE LA ST...

 Sources de la même categorie

Source avec Zip GÉNÉRATION AUTOMATIQUE DE FICHIER .CLASS.PHP EN FONCTION D'U... par ig3
CLASSE D'OBJET DE CRYPTAGE ET DÉCRYPTAGE DE CHAINES DE CARAC... par 8Tnerolf8
Source avec Zip MY.DEVIANTART API par inwebo
CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter

 Sources en rapport avec celle ci

Source avec Zip EXÉCUTER UN SCRIPT PHP EN TANT QUE SERVICE WINDOW par ig3
Source avec Zip INTERFACE ADMIN par mitchmitch74
Source avec Zip CLASSE DE GESTION D'INTERFACE RÉSEAUX par madislak
Source avec Zip Source avec une capture ASCIIART : PHP-CURSES par coucou747
Source avec Zip INTERFACE DATABASE ET CLASSE MYSQL par Davjack

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

J'ai besoin de rensignemant, je suis déséspérer [ par Aragorn, fils d'Arathorn II ] Bonjour, bonsoir... à celui/celle qui lit le présent message... Merci de me lire... J'ai une question très improtante, j'aimerais savoir qui peux m'ai Interface WYSIWYG pour edition de news [ par Joez ] Bonjour je recherche une Interface WYSIWYG pour edition de news pour mon site en PHP.quelqu'un à ça ? Nouvel hébergeur gratuit [ par Adrien ] Bonjour à toutes et à tous,Ce message s'adresse aux webmasters à la recherche un service d'hébergement gratuit de qualité.BEWEB lance la toute nouvell ticket a grater [ par thmtd ] c'est un jeu, je pense un truck avec tirage aléatoire contenant un code php et un source en c (code) pour des sockets en plus il faut faire aussi De process à service, apache tombe dans les choux [ par msohet ] bonjour les gens et voila mon probleme :j'ai du réalisé une appli en php avec connexion odbc/mysql et tout le bordel que vous connaissez.Pour ce fair De process à service, apache tombe dans les choux [ par msohet ] bonjour les gens et voila mon probleme :j'ai du réalisé une appli en php avec connexion odbc/mysql et tout le bordel que vous connaissez.Pour ce fair Probleme d'include chez free [ par lil_jam63 ] Bonsoir, voilà un moment que je me casse la tête avec un probleme que je ne comprends pas, j'ai une page index.php qui est faites de 5 includes:-haut Au secours !!!! [ par eowene ] Bonjour à tous. J'ai un problème et je ne comprends pas du tout d'où il vient.Voilà le principe...Je recherche un nom dans une base de données. Pour c Au secours [ par eowene ] Bonjour à tous. J'ai un problème et je ne comprends pas du tout d'où il vient.Voilà le principe...Je recherche un nom dans une base de données. Pour c probleme avec un input text [ par citt ] salutje fait un formulaire ou je mets des valeurs par defautdans un input ecrit comme ca$pos_esp = strpos($service, " ");$serv[0] = substr($service,0


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,905 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales