« Patrons de conception/Prototype » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 85 :
== Exemple de code en JAVA ==
 
/* Prototype Class */
 
public class Cookie implements Cloneable {
{
public Object clone()
{
try{
} {
//In an actual implementation of this pattern you would now attach references to
//the expensiveIn toan produceactual partsimplementation fromof thethis copiespattern thatyou arewould heldnow insideattach thereferences prototype.to
// the expensive to produce parts from the copies that are held inside the prototype.
return this.getClass().newInstance();
}
return this.getClass().newInstance();
catch(InstantiationException e)
{ }
catch(InstantiationException e)
e.printStackTrace();
return null;{
} e.printStackTrace();
Cookie tempCookie = return null;
}
} }
}
 
}
/* Concrete Prototypes to clone */
 
/* Concrete Prototypes to clone */
public class CoconutCookie extends Cookie { }
 
public class CoconutCookie extends Cookie { }
/* Client Class*/
 
/* Client Class */
public class CookieMachine
public class CookieMachine
 
{
private Cookie cookie; // could have been a private Cloneable cookie;
 
public CookieMachine(Cookie cookie) {
public CookieMachine(Cookie this.cookie = cookie; )
} {
this.cookie = cookie;
public Cookie makeCookie() {
}
return (Cookie)cookie.clone();
}
public ObjectCookie clonemakeCookie() { }
{
 
public CookieMachine return (Cookie) cookie.clone() {;
public static void main(String args[]){
}
Cookie tempCookie = null;
Cookie prot = new CoconutCookie();
public CookieObject makeCookieclone() { }
CookieMachine cm = new CookieMachine(prot);
for(int i=0; i<100; i++)
public static void main(String args[]){
tempCookie = cm.makeCookie();
} {
Cookie tempCookie = null;
Cookie prot = new CoconutCookie();
CookieMachine cm = new CookieMachine(prot);
for (int i=0; i<100; i++)
tempCookie = cm.makeCookie();
}
}
 
== Exemples ==