• C# 工厂模式示例


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace 工厂模式
    {
        class Program
        {
            static void Main(string[] args)
            {
                //初始化做菜的工厂
                Creator shreddedPorkWithPotatoesFactory = new ShreddedPorkWithPotatoesFactory();
                Creator tomatoScrambledEggsFactory = new TomatoScrambledEggsFactory();
                //生产西红柿炒蛋
                Food tomatoScrambleEggs = tomatoScrambledEggsFactory.CreateFoodFactory();
                tomatoScrambleEggs.Print();
                //生产土豆肉丝
                Food shreddedPorkWithPotatoes = shreddedPorkWithPotatoesFactory.CreateFoodFactory();
                shreddedPorkWithPotatoes.Print();
                Console.ReadKey();
            }
        }
        /// <summary>
        /// 菜抽象类
        /// </summary>
        public abstract class Food
        {
            /// <summary>
            /// 抽象方法输出什么菜
            /// </summary>
            public abstract void Print();
        }
        /// <summary>
        /// 做西红柿炒蛋
        /// </summary>
        public class TomatoScrambledEggs : Food
        {
            /// <summary>
            /// 重载Food的抽象方法Print
            /// </summary>
            public override void Print()
            {
                Console.WriteLine("西红柿炒蛋已经准备完毕!");
            }
        }
        /// <summary>
        /// 做土豆肉丝
        /// </summary>
        public class ShreddedPorkWithPotatoes : Food
        {
            /// <summary>
            /// 重载Food的抽象方法Print
            /// </summary>
            public override void Print()
            {
                Console.WriteLine("土豆肉丝已经准备完毕!");
            }
        }
        /// <summary>
        /// 抽象工厂类
        /// </summary>
        public abstract class Creator
        {
            public abstract Food CreateFoodFactory();
        }
        /// <summary>
        /// 西红柿炒蛋工厂
        /// </summary>
        public class TomatoScrambledEggsFactory : Creator
        {
            /// <summary>
            /// 重载创建西红柿这个菜
            /// </summary>
            /// <returns></returns>
            public override Food CreateFoodFactory()
            {
                return new TomatoScrambledEggs();
            }
        }
        /// <summary>
        /// 土豆肉丝工厂
        /// </summary>
        public class ShreddedPorkWithPotatoesFactory:Creator
        {
            /// <summary>
            /// 创建土豆肉丝这个菜
            /// </summary>
            /// <returns></returns>
            public override Food CreateFoodFactory()
            {
                return new ShreddedPorkWithPotatoes();
            }
        }
    }
  • 相关阅读:
    HDU2473 Junk-Mail Filter 【可删除的并查集】
    NOI2001 食物链【扩展域并查集】*
    POJ1733 Parity game 【扩展域并查集】*
    Codeforces 9D How many trees? 【计数类DP】
    Codeforces 28C Bath Queue 【计数类DP】*
    Codeforces 280C Game on tree【概率DP】
    Codeforces 914H Ember and Storm's Tree Game 【DP】*
    Codeforces 1027E Inverse Coloring 【DP】
    BZOJ3673 可持久化并查集 by zky 【主席树】
    BZOJ4561 JLoi2016 圆的异或并 【扫描线】【set】*
  • 原文地址:https://www.cnblogs.com/xiefengdaxia123/p/6100048.html
Copyright © 2020-2023  润新知