標籤:西紅柿 rri 馬鈴薯 ota blog 模式 actor collect void
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(); } }}
C# 原廠模式樣本