Simple factory with design patterns and factory with Design Patterns
I. Definition
A simple factory is not a design pattern, but rather a programming habit.
Ii. Category chart
Iii. Example
/// <Summary> /// Pizza shop /// </summary> public class PizzaStore {public PizzaStore () {}public Pizza OrderPizza (string type) {pizza Pizza; pizza = SimplePizzaFactory. createPizza (type); pizza. prepare (); pizza. bake (); pizza. cut (); pizza. box (); return pizza ;}/// <summary >/// Pizza Factory //</summary> public static class SimplePizzaFactory {public static pizza CreatePizza (string type) {Pizza pizza = null; if (type. equals ("cheese") {pizza = new CheesePizza ();} else if (type. equals ("pepperoni") {pizza = new PepperoniPizza ();} return pizza ;}} /// <summary> /// abstract Pizza /// </summary> public abstract class Pizza {public abstract void Prepare (); public abstract void Bake (); public abstract void Cut (); public abstract void Box () ;}/// <summary> /// cheese pizza /// </summary> public class CheesePizza: pizza {public override void Prepare () {Console. writeLine ("Prepare cheese pizza");} public override void Bake () {Console. writeLine ("baked cheese pizza");} public override void Cut () {Console. writeLine ("cut cheese pizza");} public override void Box () {Console. writeLine ("package cheese pizza") ;}/// <summary> /// Italian sausage pizza /// </summary> public class PepperoniPizza: pizza {public override void Prepare () {Console. writeLine ("Preparing Italian sausage pizza");} public override void Bake () {Console. writeLine ("baked Italian sausage pizza");} public override void Cut () {Console. writeLine ("Cut Italian sausage pizza");} public override void Box () {Console. writeLine ("package Italian sausage Pizza") ;}} static void Main (string [] args) {PizzaStore pizzaStore = new PizzaStore (); pizza Pizza = pizzaStore. orderPizza ("cheese"); Console. readLine ();}
Source code download
Reprinted please indicate from: shining lucky stars
Address: http://www.cnblogs.com/dongyang
If reprinted, keep the original address. Thank you for your cooperation.