简单工厂模式

设计模式需要认知理解并内化。较为简单并符合思维习惯的模型易于理解接受。

 

故事:

有个工厂,提供定制鞋子(休闲鞋/运动鞋)的服务。你可以定制你喜欢的鞋子。

 

建模:

简单工厂,确实就是一个很简单的工厂。

鞋子,有运动鞋和休闲鞋。

你是这个工厂的客户。

 

类图:

实现:

ShoesFactory

namespace SimpleFactory
{
    static class ShoesFactory
    {
        public static Shoes produceShoes(string shoesType)
        {            
            Console.WriteLine("<工厂公告>客户需要的鞋子类型是:{0}\n", shoesType);
            // -- 决策点
            switch (shoesType)
            {
                case "Leisure":
                    return new LeisureShoes();
                case "Sport":
                    return new SportShoes();
                default:
                    return new SportShoes();
            }
        }
    }
}

Shoes

namespace SimpleFactory
{
    class Shoes
    {
        public Shoes()
        {
            Console.WriteLine("即将生产鞋子,请稍等");
        }
    }
}

 

LeisureShoes

namespace SimpleFactory
{
    class LeisureShoes:Shoes
    {
        public LeisureShoes()
        {
            Console.WriteLine("生产休闲鞋");
            Console.WriteLine("休闲鞋完成");
        }
    }
}

 

SportShoes

namespace SimpleFactory
{
    class SportShoes:Shoes
    {
        public SportShoes()
        {
            Console.WriteLine("生产运动鞋");
            Console.WriteLine("运动鞋完成");
        }
    }
}

 

Program

namespace SimpleFactory
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入你想要的鞋子:Sport/Leisure");
            string shoesType = Console.ReadLine();

            Console.WriteLine("\n------进厂定制---------\n");
            Shoes shoes = ShoesFactory.produceShoes(shoesType);
            Console.WriteLine("\n-------鞋子出厂--------\n");
        }
    }
}

 

效果:

posted on 2012-10-04 15:27  caigen  阅读(187)  评论(0编辑  收藏  举报