首页 > 代码库 > 工厂方法模式
工厂方法模式
工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪个类型的对象,目的是将对象的创建推迟到子类中完成,并想对象的使用者隐藏对象的创建过程与具体类型
工厂方法是针对每一种产品提供一个工厂类。通过不同的工厂实例来创建不同的产品实例。
实例:一个工厂不能创建所有品牌的车辆,于是单独分出来具体的工厂,每个具体的工厂创建一个品牌的车辆。
步骤1
创建一个接口
1 public interface ICar 2 { 3 void CreateCar(); 4 }
步骤2
创建实现接口的基类
1 public abstract class CCar : ICar 2 { 3 public abstract void CreateCar(); 4 }
步骤3
创建实现接口的实体类
1 public class BMW : CCar 2 { 3 public override void CreateCar() 4 { 5 Console.WriteLine("BWM!"); 6 } 7 } 8 9 public class Benz : CCar 10 { 11 public override void CreateCar() 12 { 13 Console.WriteLine("Benz!"); 14 } 15 } 16 17 public class Rolls : CCar 18 { 19 public override void CreateCar() 20 { 21 Console.WriteLine("Rolls!"); 22 } 23 }
步骤4
创建一个工厂,生成基于给定信息的实体类的对象
1 class CarFactory 2 { 3 public ICar CreateCar(string type) 4 { 5 if (type == "BWM") 6 { 7 return new BMW(); 8 } 9 else if (type == "Benz") 10 { 11 return new Benz(); 12 } 13 else if (type == "Rolls") 14 { 15 return new Rolls(); 16 } 17 return null; 18 } 19 }
步骤5
使用该工厂,通过传递类型信息来获取实体类的对象
1 class CarFactory 2 { 3 public ICar CreateCar(string type) 4 { 5 if (type == "BWM") 6 { 7 return new BMW(); 8 } 9 else if (type == "Benz") 10 { 11 return new Benz(); 12 } 13 else if (type == "Rolls") 14 { 15 return new Rolls(); 16 } 17 return null; 18 } 19 }
最后
如有不正确的地方,请各位斧正!
工厂方法模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。