> 백엔드 개발 > C#.Net 튜토리얼 > C# 디자인 패턴 팩토리 패턴

C# 디자인 패턴 팩토리 패턴

黄舟
풀어 주다: 2017-03-02 13:12:03
원래의
1181명이 탐색했습니다.

객체 생성 캡슐화

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) !


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿