设计模式学习笔记-简单工厂模式
1、概述
将一个具体类的实例化交给静态工厂方法来实现;
2、模式中的角色
2.1:工厂类(Simple Factory)只包含创建具体类的静态方法;
2.2:抽象类(Map)定义简单工厂要返回的类;
2.3:具体类(BaiduMap,GaodeMap)具体类
3、UML图
4、代码实现
public class Map { /// <summary> /// 地图名称 /// </summary> public string Name { get; set; } /// <summary> /// 操作 /// </summary> public virtual void Print() { } } public class BaiduMap : Map { public override void Print() { Console.WriteLine("选择了{0}地图", Name); } } public class GaodeMap : Map { public override void Print() { Console.WriteLine("选择了{0}地图",Name); } } public class MapSimpleFactory { /// <summary> /// 创建具体实体类 /// </summary> /// <param name="mapType"></param> /// <returns></returns> public static Map CreateMap(MapType mapType) { Map map = null; switch (mapType) { case MapType.Baidu: map = new BaiduMap(); break; case MapType.Gaode: map = new GaodeMap(); break; } return map; } public enum MapType { Baidu, Gaode } } class Program { static void Main(string[] args) { #region 简单工厂模式实现 Map map = MapSimpleFactory.CreateMap(MapSimpleFactory.MapType.Baidu); map.Name = "百度"; map.Print(); map = MapSimpleFactory.CreateMap(MapSimpleFactory.MapType.Gaode); map.Name = "高德"; map.Print(); Console.ReadLine(); #endregion } }
参考书籍《大话设计模式》