zoukankan      html  css  js  c++  java
  • 设计模式之工厂方法模式

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace AbstractFactoryPattern
    {
        public class Pizza
        {
            public string name;
            internal void Prepare()
            {
                Console.WriteLine("准备"+name);
            }

            internal void Bake()
            {
                Console.WriteLine("烘焙" + name);
            }

            internal void Cut()
            {
                Console.WriteLine("切片" + name);
            }

            internal void Box()
            {
                Console.WriteLine("装盒" + name);
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace AbstractFactoryPattern
    {
        public abstract class PizzaStore
        {

            public Pizza OrderPizza(string type)
            {
                Pizza pizza;
                pizza = this.CreatePizza(type);
                pizza.Prepare();
                pizza.Bake();
                pizza.Cut();
                pizza.Box();
                return pizza;
            }

            public abstract Pizza CreatePizza(string type);

        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace AbstractFactoryPattern
    {
    //必胜客Pizza店
        class PizzaHut:PizzaStore
        {
            Pizza pizza;
            public override Pizza CreatePizza(string type)
            {
                if (type == "芝士烤肉Pizza")
                {
                    pizza = new Pizza();
                    pizza.name = type;
                }
                else if (type == "蔬菜Pizza")
                {
                    pizza = new Pizza();
                    pizza.name = type;
                }
                else if (type == "海鲜Pizza")
                {
                    pizza = new Pizza();
                    pizza.name = type;
                }
                return pizza;
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace AbstractFactoryPattern
    {
    //来一家Pizza店
        class MrPizza:PizzaStore
        {
            Pizza pizza;
            public override Pizza CreatePizza(string type)
            {
                if (type == "MrPizza1号")
                {
                    pizza = new Pizza();
                    pizza.name = type;
                }
                else if (type == "MrPizza2号")
                {
                    pizza = new Pizza();
                    pizza.name = type;
                }
                else if (type == "MrPizza3号")
                {
                    pizza = new Pizza();
                    pizza.name = type;
                }
                return pizza;
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace AbstractFactoryPattern
    {
        class Program
        {
        //开吃,生产Pizza
            static void Main(string[] args)
            {
                PizzaStore ps = new PizzaHut();
                ps.OrderPizza("芝士烤肉Pizza");
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    42.纯 CSS 创作一个均衡器 loader 动画
    41.纯 CSS 绘制一支栩栩如生的铅笔
    1.如何在Cloud Studio上执行Python代码?
    2.每个 HTML 文件里开头都有个<!DOCTYPE>
    39.纯 CSS 创作一个表达怀念童年心情的条纹彩虹心特效
    LOJ #2127. 「HAOI2015」按位或 min-max容斥+FWT
    HDU
    LOJ #3044. 「ZJOI2019」Minimax 搜索 动态DP+概率
    LOJ #3043. 「ZJOI2019」线段树 线段树+分类讨论
    Comet OJ
  • 原文地址:https://www.cnblogs.com/wuhailong/p/4496405.html
Copyright © 2011-2022 走看看