Factory Method(工厂方法)模式属于GoF设计模式中的创建型分组,它用于在不之制定待创建对象的具体类的情况下创建对象。--《asp.net设计模式》
说白了就是一个人想要出国旅游,市面上有很多出国旅游信息并且很杂乱,于是他就是找旅行社,旅行社问他要了旅游标准并顺利的出国旅游了。Factory Method模式就相当于旅行社。
以下是我的代码
主界面
1 class Program 2 { 3 static void Main(string[] args) 4 { 5 Console.WriteLine("please enter country code..."); 6 string code = Console.ReadLine(); 7 Console.WriteLine("please enter country name..."); 8 string name = Console.ReadLine(); 9 ILoca loca; 10 if (code=="1"&&name=="asia") 11 { 12 loca=new Asia(); 13 Console.WriteLine(loca.Description(new Country{Code = code,Name =name })); 14 } 15 else if (code=="2"&&name=="euroqe") 16 { 17 loca=new Europe(); 18 Console.WriteLine(loca.Description(new Country { Code = code, Name = name })); 19 } 20 21 Console.ReadLine(); 22 } 23 }
定义一个借口,用于扩展
1 public interface ILoca 2 { 3 string Description(Country country); 4 }
实现接口
1 public class Asia : ILoca 2 { 3 public string Description(Country country) 4 { 5 return "Asia"; 6 } 7 }
1 public class Europe : ILoca 2 { 3 public string Description(Country country) 4 { 5 return "Euroqe"; 6 } 7 }
用于持久化数据的实体类
1 public class Country 2 { 3 public string Code { get; set; } 4 public string Name { get; set; } 5 public Location Area { get; set; } 6 }
1 public class Location 2 { 3 public string LocationName { get; set; } 4 }
个人理解比较浅显,还请不吝赐教!