IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Attraper un appel de fonction


Sujet :

avec Java

  1. #1
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut Attraper un appel de fonction
    Bonjour,

    J'ai fait en sorte de copié dynamiquement une classe avec de la réflexivité.
    J'aimerai savoir si il y a un moyen de faire en sorte que lorsque une fonction de la classe d'origine est appelé, l'appel soit intercepté et renvoyer sur la fonction de la classe copié.

    Merci de votre aide.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Il serait plus simple de faire un proxy, du coup, non ?

    C'est de l'informatique, il y a toujours moyen de faire des trucs. Mais c'est une bonne idée d'identifier le problème précis pour en voir les solutions habituelles et décider d'en choisir une plutôt que faire par soi-même.

    Et pour ça, il faudrait qu'on sache ce que tu as fait en vrai, pas "genre une copie dynamique avec la réflectivité"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Tu as raison, d'autant que je ne suis pas sûr que mon approche soit la bonne. En fait, ce que j'aimerais faire, c'est pouvoir créer un serveur socket avec la simplicité d'un serveur RMI et surtout avec le même type de fonctionnement.

    Donc je pensais faire un genre de listener pour fonction, qui pour lorsque le client appelle une fonction, cette fonction soit identifié et qu'un message soit envoyée au serveur pour être redistribuée à tous les clients pour que cette fonction soit exécuté chez tout le monde.

    J'essaie de simplifier au maximum mais je suis pas sûr que ce soit clair.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Mais pourquoi la fonction n'est-elle pas simplement d'envoyer le message, normalement, point final ? Pourquoi de la réflectivité ? Pourquoi copier des trucs ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Pour ne pas avoir à réécrire le code à chaque fois que je fais un nouveau logiciel. Le principe du serveur RMI c'est que tu gères ton code comme si les objets distants était en local. C'est vachement plus simple.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Euh, oui mais ça n'a aucun rapport. Quand on fait du RMI le framework génère une interface, ainsi qu'une implémentation client de cette interface, implémentation qui envoie le message au serveur.

    Du coup quand on fait du RMI, on obtient des classes qui envoient déjà le message. Quel intérêt de copier ? Quel intérêt de faire de la réflectivité ?

    Puisque tu as l'air d'en être au tout début, je pense que je devrais en profiter pour te signaler que RMI est obsolète. De nos jours on fait des API REST, c'est plus standard et moins contraignant (du moins, les contraintes de faire des API REST sont moins contraignantes que celles pour faire du RMI). De toute façon, la réalité est que plus personne ne fait de RMI et que tout le monde fait du REST. Autant je peux comprendre qu'on pense que suivre une mode c'est être un mouton, autant RMI c'était suivre une mode aussi, et le but était de s'aligner sur ce que tout le monde fait, pour s'appuyer sur les frameworks existants et travailler vite avec du support facile. Sauf que de nos jours ça ce n'est plus RMI. Ce sont les API REST. Et ça fait longtemps.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Ok merci du renseignement, je ne connaissais pas. Par contre je me pose une question, est-ce que ça ne serait pas exclusif à JEE? Est-ce que c'est compatible voir pratique, d'utiliser ça pour gérer la partie multijoueur dans un jeu vidéo ?

    Alors pour la question de pourquoi est-ce que je veux réinventer la roue RMI à partir d'un serveur socket, et ben parce que RMI a un problème majeur qui est que l'on a pas la possibilité de gérer qui se connecte au serveur. Et vu que l'API REST a l'air tout à fait moulée pour le web service, j'imagine qu'elle n'en donne pas non plus la possibilité.

    Ce que j'aimerais faire à partir de mon serveur socket, c'est pouvoir savoir quand client appelle une fonction, pour envoyer l'info au serveur de manière à ce qu'il distribue l'information à tous ses clients de manière à ce que la fonction soit exécuté chez tout le monde en même temps. Si je peux faire ça je peux simplifier grandement le nombre de ligne à écrire par rapport à ce que j'aurais dû faire de base.

    Pour la réflexivité je ne sais pas, je t'avoue qu'en fait je tâtonne. J'imaginais avoir besoin de dupliquer la classe du client... Enfin bref peu importe.

    Maintenant peut-être que l'API REST me permet de faire tout ça sans trop me casser la tête ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler une fonction avec "action" ds un
    Par drinkmilk dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 14h54
  2. Réponses: 4
    Dernier message: 19/04/2004, 13h41
  3. [JSP] Appeler une fonction
    Par Patrick95 dans le forum Servlets/JSP
    Réponses: 10
    Dernier message: 23/12/2003, 13h44
  4. Appel à des fonctions incluses dans des DLL
    Par Greybird dans le forum Langage
    Réponses: 3
    Dernier message: 26/05/2003, 13h33
  5. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo