关键词不能为空

当前您在: 主页 > 英语 >

工厂模式代码及类图

作者:高考题库网
来源: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

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

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文