简单工厂模式
设计模式需要认知理解并内化。较为简单并符合思维习惯的模型易于理解接受。
故事:
有个工厂,提供定制鞋子(休闲鞋/运动鞋)的服务。你可以定制你喜欢的鞋子。
建模:
简单工厂,确实就是一个很简单的工厂。
鞋子,有运动鞋和休闲鞋。
你是这个工厂的客户。
类图:
实现:
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"); } } }
效果: