객체 생성 캡슐화
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DesignPytternDemo { /// <summary> /// 简单工厂 /// </summary> public interface IFood { int Price { get; } } public class Orange : IFood { public Orange() { Console.WriteLine("orange created"); } public int Price { get { return 1; } } } public class Rice : IFood { public Rice() { Console.WriteLine("rice created"); } public int Price { get { return 3; } } } public static class FoodFactory { public static IFood CreateFood(string foodType) { IFood f = null; switch (foodType) { case "o": f = new Orange(); break; case "r": f = new Rice(); break; default: break; } return f; } } /// <summary> /// 抽象工厂 /// </summary> public interface IActionGame { } public class Kof : IActionGame { public Kof() { Console.WriteLine("Kof created"); } } public class War3 : IActionGame { public War3() { Console.WriteLine("War3 created"); } } public class Cs : IActionGame { public Cs() { Console.WriteLine("Cs created"); } } public interface IRPG { } public class menghuan : IRPG { public menghuan() { Console.WriteLine("menghuan created"); } } public class Legend : IRPG { public Legend() { Console.WriteLine("Legend created"); } } public class Diablo : IRPG { public Diablo() { Console.WriteLine("Diablo created"); } } public abstract class GameFactory { public abstract IActionGame CreateActionGame(); public abstract IRPG CreateRpgGame(); } public class MyGameFactory : GameFactory { public override IActionGame CreateActionGame() { return new Kof(); } public override IRPG CreateRpgGame() { return new Legend(); } } }
위 내용은 C# 디자인 패턴의 팩토리 패턴 내용이며, 더 많은 관련 내용은 PHP 중국어 홈페이지(www.kr)를 참고해주세요. .php.cn) !