关键词不能为空

当前您在: 主页 > 英语 >

工厂模式代码及类图

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-08 16:33
tags:

-

2021年2月8日发(作者:ev71)


抽象工厂



类图:



class Class Model



?interface?


?interface?


?inte rface?


Veggies


Sauce


Dough


PizzaStore


#


createPizza(String) : Pizza


~sauce


+


orderPizza(String) : Pizza


~d ough


~veggies


Eggplant

< br>MarinaraSauce


ThickCrustDough

< br>+


Eggplant()


ChicagoPizzaS tore


+


MarinaraSauce()


+


ThickCrustDough()


#


createPizza(String) : Pizza


G arlic


NYPizzaStore


PlumTomatoS auce


ThinCrustDough


+


Garlic()


#


createPizza(String) : Pizza


+


PlumTomatoSauce()


+

ThinCrustDough()


BlackOliv


e s


Pizza


?interface?


Onion


PizzaIngredientFactory


+


BlackOlives()


~


dough: Dough


+


createDough() : Dough


+


Onion()


~


name: String


+


createSauce() : Sauce


~


sauce: Sauce


+


createVeggies() : Veggies[]


~


veggies: Veggies ([])


Mushroom


~


bake() : void


~ingredientFact ory


~ingredientFactory


+


Mushroom()


~


box() : void


~


cut() : void


~


prepare() : void


ChicagoPizzaIngredientFactory


~


setName(String) : void


NYPizz aIngredientFactory


?property get?


+


createDough() : Dough


~


getname() : String


+


createSauce() : Sauce


+


createDough() : Dough


+


createVeggies() : Veggies[]


+


createSauce() : Sauce


+


createVeggies() : Veg gies[]


VeggiesPizza


CheesePizz a


~


ingredientFactory: PizzaIngredientFactory


~


ingredientFactory: PizzaIngredientFactory


~


prepare() : void


+


VeggiesPizza(PizzaIngredientFactory)


+


CheesePizza(PizzaIngredientFactory)


~


prepare() : void


代码:



public interface Sauce {


public class PlumTomatoSauce


}


implements Sauce{


public class MarinaraSauce implements



public PlumTomatoSauce(){


Sauce{




n(



public MarinaraSauce(){


PlumTomatoSauce...




n(



}


MarinaraSauce...


}



}


public interface Dough {


}




1



}



public Mushroom(){


public class ThickCrustDough




n(


implements Dough{


Mushroom...



public ThickCrustDough(){



}




n(


}


ThickCrustDough...


public class Garlic implements



}


Veggies{


}



public Garlic(){


public


class


ThinCrustDough


implements




n(


Dough{


Garlic...



public ThinCrustDough(){



}




n(


}


ThinCrustDough...


public class Eggplant implements



}


Veggies{


}



public Eggplant(){


public interface Veggies {




n(



Eggplant...


}



}


public


class


Onion


implements


Veggies{


}



public Onion(){


public class BlackOlives implements




n(


Veggies{


Onion...



public BlackOlives(){



}




n(


}


BlackOlives...


public class Mushroom implements



}


Veggies{


}




public abstract class Pizza {



String name;



Dough dough;



Sauce sauce;



Veggies veggies[];



abstract void prepare();



void bake(){




n(



}



void cut(){




n(



}



void box(){




n(



}



void setName(String name){




=name;



}



String getname(){




return name;



}


}




2


public interface PizzaIngredientFactory {



public Dough createDough();



public Sauce createSauce();



public Veggies[] createVeggies();


}


public class NYPizzaIngredientFactory implements PizzaIngredientFactory{



public Dough createDough(){




return new ThinCrustDough();



}



public Sauce createSauce(){




return new MarinaraSauce();



}



public Veggies[] createVeggies(){




Veggies veggies[]={new Garlic(),new Onion(),new Mushroom()};




return veggies;



}


}


public class ChicagoPizzaIngredientFactory implements PizzaIngredientFactory{



public Dough createDough(){




return new ThickCrustDough();



}



public Sauce createSauce(){




return new PlumTomatoSauce();



}



public Veggies[] createVeggies(){




Veggies veggies[]={new BlackOlives(),new Eggplant()};




return veggies;



}


}


public class VeggiesPizza extends Pizza{



PizzaIngredientFactory ingredientFactory;



public VeggiesPizza(PizzaIngredientFactory ingredientFactory){




ientFactory=ingredientFactory;



}



void prepare(){




n(




dough=Dough();




sauce=Sauce();




veggies=Veggies();



}


}


public class CheesePizza extends Pizza{



PizzaIngredientFactory ingredientFactory;



public CheesePizza(PizzaIngredientFactory ingredientFactory){




ientFactory=ingredientFactory;



}



void prepare(){




n(




dough=Dough();




sauce=Sauce();



}



3


}


public abstract class PizzaStore {



public Pizza orderPizza(String type){




Pizza pizza;




pizza=createPizza(type);




e();




();




();




();




return pizza;



}



protected abstract Pizza createPizza(String type);


}



public class NYPizzaStore extends PizzaStore{



protected Pizza createPizza(String item){




Pizza pizza=null;




PizzaIngredientFactory ingredientFactory=new


NYPizzaIngredientFactory();




if((





pizza=new CheesePizza(ingredientFactory);





e(




}




else if((





pizza=new VeggiesPizza(ingredientFactory);





e(




}





return pizza;



}


}



public class ChicagoPizzaStore extends PizzaStore{



protected Pizza createPizza(String item){




Pizza pizza=null;




PizzaIngredientFactory ingredientFactory=new


ChicagoPizzaIngredientFactory();




if((





pizza=new CheesePizza(ingredientFactory);





e(




}




else if((





pizza=new VeggiesPizza(ingredientFactory);





e(




}





return pizza;



}


}



测试结果



Preparing New York Style Cheese Pizza


Add ThinCrustDough...



4

-


-


-


-


-


-


-


-



本文更新与2021-02-08 16:33,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/615628.html

工厂模式代码及类图的相关文章