J'ai besoin d'une explication d'une classe wrapper avec un exemple qu'un enfant serait de comprendre
J'ai lu l'ensemble de ce post. Il explique ce qu'est une classe wrapper est à d'autres programmeurs expérimentés, mais pas pour un débutant comme moi.
Je comprends syntaxe PHP, le concept orienté objet, mais n'ai pas écrit ma propre application dans le code orienté objet encore. Je suis plus que perplexe quand à essayer de comprendre ce qu'est exactement une classe wrapper est. Je ne comprends pas le jargon technique.
J'espère que quelqu'un répond avec une belle détaillée enfant comme la description qui est facile à comprendre pour quelqu'un qui comprend les bases de l'orienté-objet, le programme et l'a lu à peu près la totalité de la php.net la langue de référence, mais n'a pas de réelle de la programmation orientée objet de l'expérience. Aucune demande n'a encore écrit.
OriginalL'auteur darga33 | 2012-02-21
Vous devez vous connecter pour publier un commentaire.
Étant donné que les explications sur la question que vous avez lié sont assez vaste, je ne vais pas aller un redéfinir pour vous encore une fois. Au lieu de cela, je vais essayer de vous montrer par un exemple de l'injection.
Donc, ci-dessus, vous avez une classe
Logger
que vous pouvez l'utiliser pour enregistrer des informations quelque part. Nous n'avons pas vraiment comment il le fait, nous savons juste qu'il fait.Maintenant, nous avons un couple de journalisation différentes possibilités...
Maintenant, quand nous utilisons notre enregistreur, nous le faisons en procédant de la façon suivante:
Nous avons toujours interagir avec les
$logger
de la même façon (c'est à dire. nous appelonswrite($message)
). Le wrapper instanceLogger
encapsule l'enregistrement réel de la classe et appelle ses méthodes en notre nom.Une utilisation plus fréquente du type ci-dessus de code lors de l'utilisation de fichiers de configuration pour déterminer ce que votre enregistreur. Par exemple, considérons le cas où vous voulez avoir votre journalisation envoyé à un fichier. Vous pourriez avoir une config qui ressemble à ceci:
Et votre de classes adaptées pourrait ressembler à:
Nous ferait la même chose pour les autres
adapted
classes. Puis, avec un peu de modification de la principale WrapperLogger
, nous avons pu créer le bon enveloppé exemple en utilisant les données de configuration et la base sur letype
qui est définie dans le fichier de configuration. Une fois que vous avez quelque chose comme ça en place, le passage à l'enregistrement par e-mail est aussi facile que de changer latype
dans la config.Merci beaucoup! Maintenant, j'ai officiellement comprendre le concept. Même si, ne vous méprenez pas. Les exemples de plus je suis capable de regarder au mieux de ma compréhension sera. Merci de prendre le temps d'écrire cet exemple. Il est beaucoup apprécié et j'espère que les autres à trouver leur chemin de votre réponse!
Peut-classe wrapper utiliser l'héritage?
OriginalL'auteur sberry
Classes Wrapper juste faire de leur enfant de la classe la plus facile à utiliser pour une circonstance particulière. Beaucoup de bibliothèques sont écrits afin de couvrir une large variété de situations et donc de devenir lourd et complexe à utiliser. Beaucoup de projets permettra de créer un wrappers pour la bibliothèque pour la rendre plus facile à utiliser.
Prendre cette classe PDO utilisation par exemple:
Ne vous inquiétez pas trop sur les détails. Sachez simplement que ces lignes de code interroger une base de données. Une classe wrapper permet les mêmes fonctionnalités ci-dessus avec quelque chose comme:
Nous avons enlevé une partie de la lourdeur, mais rarement utilisé, les caractéristiques de l'enfant de la classe dans une interface facile à utiliser. En interne, la classe wrapper est en train de construire le même type d'appels à PDO, mais c'est caché de la part du développeur.
Avertissement: Les exemples sont ce qu'ils sont.. des exemples. Pas pour but de montrer les meilleures pratiques ou même être pratique.
Mike! Même réponse que pour sberry! Merci beaucoup! Je peux maintenant comprendre un peu ce qu'il est utilisé pour. Je souhaite qu'il y avait un moyen de lien de ce post pour le lien dans le post original afin que d'autres puissent en profiter aussi bien!
OriginalL'auteur Mike B