Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5096 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Duplication de code

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Duplication de code

n°1703630
ksavieras
Posté le 17-03-2008 à 19:48:56  profilanswer
 

Bonjour,
 
On me demande de dupliquer une fonction pour avoir le comportement suivant :
- Sous certaines conditions, lever une exception
- Sous les même conditions, continuer le traitement
J'aurai donc une fonction f et une fonction fbis que j'appellerais et qui seraient strictement semblables concernant le traitement, à part que justement si j'appelle f elle doit s'arrêter dans certaines conditions, et si j'appelle fbis, dans les mêmes conditions elle doit continuer.
 
Je ne suis évidemment pas d'accord avec cette solution, car elle implique une maintenabilité beaucoup trop risquée (ce sont des fonctions pas piquées des hannetons en plus)
Le problème que j'ai est que je ne peux pas modifier les paramètres (les interfaces ne sont pas modifiables), donc pas rajouter un booléen dans ma fonction.
Je ne peux pas non plus "vider" f et la laisser de coté, car elle peut être appelée directement par du code sur lequel je n'ai aucun accès. De toute façon cette solution ne serait pas très élégante.
 
Je n'arrive pas à trouver le montage qui me permettrait d'avoir une solution élégante et sans risque.
 
Merci d'avance ...
 

mood
Publicité
Posté le 17-03-2008 à 19:48:56  profilanswer
 

n°1703666
MrRenaud
Posté le 17-03-2008 à 20:52:54  profilanswer
 

Et si tu fais une sorte de filtre?
 

Code :
  1. public interface Filter
  2. {
  3.      /** Détermine si ton objet est accepté.
  4.        @param anObject l'objet à vérifier.
  5.        @return un booléen.
  6.       */
  7.      boolean isAccepted(Object anObject);
  8. }


 
et:
 

Code :
  1. public class FunctionFilter implements Filter
  2. {
  3.      public FunctionFilter() {
  4.      }
  5.      public boolean isAccepted(Object anObject)
  6.      {
  7.       // ta condition
  8.      }
  9. }


 
Comme ça pas besoin de modifier ta fonction ou ton interface.
 
^^ Bon j'espère que ça t'aidera :D j'débute!

n°1712893
targol33
I require a technician !!!!
Posté le 04-04-2008 à 17:04:03  profilanswer
 

Ce que je ferais, serait de mettre quelque part, dans une classe statique ou un singleton, une variable statique de type boolean dans ce genre :

Code :
  1. public final class RunType {
  2.    public static boolean stopOnError = true;
  3. }


Ensuite, dans la fonction incriminée, sans changer son interface, tu fais quelque chose comme ça :

Code :
  1. function toto(String titi) throws Exception {
  2.   try {
  3.     // Ton code ici
  4.   } catch (Exception e) {
  5.      if (RunType.stopOnError) {
  6.         throw e;
  7.      }
  8.   }
  9. }


Quelque chose dans ce genre là devrait répondre à ton problème, non ?


---------------
Un ordinateur sert à résoudre des problèmes qui n'existaient pas avant son invention.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Duplication de code

 

Sujets relatifs
vous avez un code source en delphi,comment le compilé?Erreur de code en PHP
[resolu] CSS - Appel d'un div codé ailleursCode sources Prog objet ou les trouver
Code loginComment afficher le code binaire du contenu d'une variable quelconque
validation code anti-spam[RESOLU] Simplifier mon code de date sur 7 jours dans menu deroulant
Compréhension ligne de code ?exe/dll : duplication du code des méthodes
Plus de sujets relatifs à : Duplication de code


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)