jasu's blog
블로그 메뉴검색결과 리스트
factory에 해당되는 글 1건
- 2007.02.21 Factory
글
Factory
Programming/Design Patterns
2007. 2. 21. 11:07
1 class SimplePizzaFactory{
2 public function createPizza(type:String):Pizza{
3 var pizza:Pizza = null;
4 if(type == "cheese"){
5 pizza = new CheesePizza();
6 }else if(type == "pepperoni"){
7 pizza = new PepperoniPizza();
8 }else if(type == "clam"){
9 pizza = new ClamPizza();
10 }else if(type == "veggie"){
11 pizza = new VeggiePizza();
12 }
13 return pizza;
14 }
15 }
////////////////////////////////////////
1 class CheesePizza extends Pizza{
2 public function CheesePizza(){
3 pizza_name = "CheesePizza";
4 dough = "얇게";
5 sauce = "짜게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
/////////////////////////////////
1 class VeggiePizza extends Pizza{
2 public function VeggiePizza(){
3 pizza_name = "VeggiePizza";
4 dough = "굵게";
5 sauce = "달게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
/////////////////////////////////////////////
1 class ClamPizza extends Pizza{
2 public function ClamPizza(){
3 pizza_name = "ClamPizza";
4 dough = "굵게";
5 sauce = "달게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
//////////////////////////////////////
1 class PepperoniPizza extends Pizza{
2 public function PepperoniPizza(){
3 pizza_name = "PepperoniPizza";
4 dough = "굵게";
5 sauce = "달게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
/////////////////////////////////////////
1 class Pizza{
2 private var pizza_name:String;
3 private var dough:String;
4 private var sauce:String;
5 private var ary:Array = new Array();
6
7 public function prepare(){
8 trace("피자이름 : "+pizza_name);
9
10 }
11 public function bake(){
12 trace("Bake for 25 minutes at 350");
13 }
14 public function cut(){
15 trace("Cutting the pizza into diagonal slices");
16 }
17 public function box(){
18 trace("Place pizza in official PizzaStore box");
19 }
20 public function getName():String{
21 return pizza_name;
22 }
23
24 }
///////////////////////////////////////
1 class PizzaStore{
2 private var factory:SimplePizzaFactory;
3 public function PizzaStore(factory:SimplePizzaFactory){
4 this.factory = factory;
5 }
6 public function orderPizza(type:String):Pizza{
7 var pizza:Pizza; 8 pizza = factory.createPizza(type);
9 pizza.prepare();
10 // pizza.bake();
11 // pizza.cut();
12 // pizza.box();
13 return pizza;
14 }
15 }
////////////////////////////////////////
var myPizzaStore:PizzaStore = new PizzaStore(new SimplePizzaFactory());
myPizzaStore.orderPizza("cheese");
myPizzaStore.orderPizza("pepperoni");
myPizzaStore.orderPizza("clam");
myPizzaStore.orderPizza("veggie");
2 public function createPizza(type:String):Pizza{
3 var pizza:Pizza = null;
4 if(type == "cheese"){
5 pizza = new CheesePizza();
6 }else if(type == "pepperoni"){
7 pizza = new PepperoniPizza();
8 }else if(type == "clam"){
9 pizza = new ClamPizza();
10 }else if(type == "veggie"){
11 pizza = new VeggiePizza();
12 }
13 return pizza;
14 }
15 }
////////////////////////////////////////
1 class CheesePizza extends Pizza{
2 public function CheesePizza(){
3 pizza_name = "CheesePizza";
4 dough = "얇게";
5 sauce = "짜게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
/////////////////////////////////
1 class VeggiePizza extends Pizza{
2 public function VeggiePizza(){
3 pizza_name = "VeggiePizza";
4 dough = "굵게";
5 sauce = "달게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
/////////////////////////////////////////////
1 class ClamPizza extends Pizza{
2 public function ClamPizza(){
3 pizza_name = "ClamPizza";
4 dough = "굵게";
5 sauce = "달게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
//////////////////////////////////////
1 class PepperoniPizza extends Pizza{
2 public function PepperoniPizza(){
3 pizza_name = "PepperoniPizza";
4 dough = "굵게";
5 sauce = "달게";
6 }
7
8 private function bake(){
9 trace("Bake for 25 minutes at 350");
10 }
11 private function cut(){
12 trace("Cutting the pizza into diagonal slices");
13 }
14 private function box(){
15 trace("Place pizza in official PizzaStore box");
16 }
17 public function getName():String{
18 return pizza_name;
19 }
20 }
/////////////////////////////////////////
1 class Pizza{
2 private var pizza_name:String;
3 private var dough:String;
4 private var sauce:String;
5 private var ary:Array = new Array();
6
7 public function prepare(){
8 trace("피자이름 : "+pizza_name);
9
10 }
11 public function bake(){
12 trace("Bake for 25 minutes at 350");
13 }
14 public function cut(){
15 trace("Cutting the pizza into diagonal slices");
16 }
17 public function box(){
18 trace("Place pizza in official PizzaStore box");
19 }
20 public function getName():String{
21 return pizza_name;
22 }
23
24 }
///////////////////////////////////////
1 class PizzaStore{
2 private var factory:SimplePizzaFactory;
3 public function PizzaStore(factory:SimplePizzaFactory){
4 this.factory = factory;
5 }
6 public function orderPizza(type:String):Pizza{
7 var pizza:Pizza; 8 pizza = factory.createPizza(type);
9 pizza.prepare();
10 // pizza.bake();
11 // pizza.cut();
12 // pizza.box();
13 return pizza;
14 }
15 }
////////////////////////////////////////
var myPizzaStore:PizzaStore = new PizzaStore(new SimplePizzaFactory());
myPizzaStore.orderPizza("cheese");
myPizzaStore.orderPizza("pepperoni");
myPizzaStore.orderPizza("clam");
myPizzaStore.orderPizza("veggie");