zoukankan      html  css  js  c++  java
  • 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();
            }
        }
    }
  • 相关阅读:
    微信redirect_uri 回调错误,scope权限错误
    对“空间数据库”的理解
    空间数据库2
    PostgreSQL和MySQL
    shp文件和地理数据库文件的区别
    分布式 空间数据库
    Git使用教程
    栅格投影
    mapnik渲染原理
    高斯消元——浮点数模板
  • 原文地址:https://www.cnblogs.com/xiefengdaxia123/p/6100048.html
Copyright © 2011-2022 走看看