标签:col 也有 round mil 引入 div 不用 创建对象 ram
只去看定义,可能学术化太强,不足以形成一种比较形象的思维。让我们来做一个这样的思考:
综上所述,工厂方法模式,有着很多优势:
当然,工厂模式也有着很明显的缺陷:
最后我们看看demo吧,这是一个非常简单的demo,正常来说,工厂模式涵盖的内容很多,思维不要太过局限于demo,更多还应该考虑每个工厂可能还有自己特殊的地方,毕竟已经设计了单独的工厂类了。
以下demo的场景是想找到一个厨师去做饭,厨师角色暂时按照男女厨师来区分。
1 public interface IFactory 2 { 3 ICook GetCooker(); 4 }
1 public class ManFactory : IFactory 2 { 3 public ICook GetCooker() 4 { 5 return new IManCook(); 6 } 7 }
1 public class WomanFactory : IFactory 2 { 3 public ICook GetCooker() 4 { 5 return new IWomanCook(); 6 } 7 }
1 public interface ICook 2 { 3 void DoMeal(); 4 }
1 public class IManCook : ICook 2 { 3 public void DoMeal() 4 { 5 Console.WriteLine("男厨师做饭"); 6 } 7 }
1 public class IWomanCook : ICook 2 { 3 public void DoMeal() 4 { 5 Console.WriteLine("女厨师做饭"); 6 } 7 }
1 public class Program 2 { 3 static void Main(string[] args) 4 { 5 //找男厨师做饭 6 IFactory manFactory = new ManFactory(); 7 ICook manCook = manFactory.GetCooker(); 8 manCook.DoMeal(); 9 10 //找女厨师做饭 11 IFactory womanFactory = new ManFactory(); 12 ICook womanCook = womanFactory.GetCooker(); 13 womanCook.DoMeal(); 14 } 15 }
标签:col 也有 round mil 引入 div 不用 创建对象 ram
原文地址:https://www.cnblogs.com/edison0621/p/10414721.html