工厂模式代码及类图抽象工厂类图:代码:publicinterfaceSauce{}lassMarinaraSauceimplementsSauce{ publicMarinaraSauce(){ ("AddMarinaraSauce..."); }}lassPlumTomatoSauceimplementsSauce{ publicPlumTomatoSauce(){ ("AddPlumTomatoSauce..."); }}publicinterfaceDough{}lassThickCrustDoughimplementsDough{ publicThickCrustDough(){ ("AddThickCrustDough..."); }}lassThinCrustDoughimplementsDough{ publicThinCrustDough(){ ("AddThinCrustDough..."); }}publicinterfaceVeggies{}lassOnionimplementsVeggies{ publicOnion(){ ("AddOnion..."); }}lassMushroomimplementsVeggies{ publicMushroom(){ ("AddMushroom..."); }}lassGarlicimplementsVeggies{ publicGarlic(){ ("AddGarlic..."); }}lassEggplantimplementsVeggies{ publicEggplant(){ ("AddEggplant..."); }}lassBlackOlivesimplementsVeggies{ publicBlackOlives(){ ("AddBlackOlives..."); }}publicabstractclassPizza{ Stringname; Doughdough; Saucesauce; Veggiesveggies[]; abstractvoidprepare(); voidbake(){ ("Bakefor25minutesat350"); } voidcut(){ ("Cuttingthepizzaintodiagonalslices"); } voidbox(){ ("PlacepizzainofficialPizzaStorebox"); } voidsetName(Stringname){ =name; } Stringgetname(){ returnname; }}publicinterfacePizzaIngredientFactory{ publicDoughcreateDough(); publicSaucecreateSauce(); publicVeggies[]createVeggies();}lassNYPizzaIngredientFactoryimplementsPizzaIngredientFactory{ publicDoughcreateDough(){ returnnewThinCrustDough(); } publicSaucecreateSauce(){ returnnewMarinaraSauce(); } publicVeggies[]createVeggies(){ Veggiesveggies[]={newGarlic(),newOnion(),newMushroom()}; returnveggies; }}lassChicagoPizzaIngredientFactoryimplementsPizzaIngredientFactory{ publicDoughcreateDough(){ returnnewThickCrustDough(); } publicSaucecreateSauce(){ returnnewPlumTomatoSauce(); } publicVeggies[]createVeggies(){ Veggiesveggies[]={newBlackOlives(),newEggplant()}; returnveggies
工厂模式代码及类图 来自淘豆网www.taodocs.com转载请标明出处.