Principe ocp

Fermé
geekon Messages postés 25 Date d'inscription lundi 9 juillet 2012 Statut Membre Dernière intervention 8 janvier 2016 - 8 janv. 2016 à 22:46
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 9 janv. 2016 à 01:16
Bonjour,
je fais face à un petit exercice de filtrage de message sous java,
la solution doit respecter le principe OCP,
j'ai réussi à écrire le programme mais je pouvais pas suivre le principe OCP.
voici le code:

package fr.uvsq.coo.projet_ex1;
package fr.uvsq.coo.projet_ex1;

public class Message {
	public String type;
	public float taille;
	public String contenu;
	
public Message( String type, float taille, String contenu){
	this.type= type;
	this.taille= taille;
	this.contenu= contenu;
	}


public boolean test_type (String type)
{   String s1="text";
    String s2="byte";
    String s3="xml";
	boolean test=false;
	if (type.equals(s1) || type.equals(s2) || type.equals(s3))
		{test=true;}
	return test;
}


public boolean test_taille(float taille){
	float T=taille;
boolean test = false;
if (T<256)                       // si taille>256 la methode retourne true
{test=false;}
else 
	test=true;
return test;
}

public boolean test_mots(String msg){
	boolean test=false;
	if (msg.contains("timp") || msg.contains("ya3tek douda") || msg.contains("tiiit"))
	{test=true;}
	return test;
}
	
	
		
}





import java.util.Scanner;

public class program {

public static void main (String[] args){
	String type = null;
	String contenu = null;
	float taille = 0;
	
	Message Message= new Message(type,taille,contenu);
	
	Scanner sc = new Scanner(System.in);
	System.out.println("Veuillez saisir votre message :");
	String msg = sc.nextLine();
	Message.contenu=msg;
	System.out.println("Veuillez saisir le type du message :");
	String typem = sc.nextLine();
	Message.type=typem;
	System.out.println("Veuillez saisir la taille du message :");
	float taillem = sc.nextFloat();
	Message.taille=taillem;
	System.out.println("Vous avez saisi : " + Message.contenu);
	
	boolean testtype= Message.test_type(typem);
	if (testtype==true)
		{System.out.println("Type " + Message.type+ " OK ");}
	else
	    {System.out.println("Type " +Message.type+ " erroné");}

	boolean testtaille=Message.test_taille(taillem);
	if (testtaille==false)
	{System.out.println("Taille " +Message.taille+ " OK");}
	else
	{System.out.println("Taille " +Message.taille+ " erroné");}
	
	boolean testmot=Message.test_mots(msg);
	if (testmot==false)
	{System.out.println("message " +Message.contenu+ " OK");}
	else {System.out.println("message " +Message.contenu+ " effacé");}
	
}
}


une idée sur comment le modifié pour qu'il respecte le principe ocp ?
Merci d'avance :)

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
9 janv. 2016 à 01:16
Bonjour,

C'est quoi pour toi "le principe OCP" ?

Pour moi en Java, OCP c'est une certification, "Oracle Certified Professional", mais vu ton code, ça doit pas être ça... tu es encore très loin de ce niveau !
0