首页 > 代码库 > 【设计模式】 简单工厂,工厂方法,抽象工厂
【设计模式】 简单工厂,工厂方法,抽象工厂
一. 简单工厂
1. 通过 switch 判断,创建对应的类型实例
2. 代码
public static CalBase GetCal(string oper)
{
switch (oper)
{
case "+":
return new CalAdd();
case "=":
return new CalSub();
case "*":
return new CalMul();
case "/":
return new CalDiv();
default:
return null;
}
}
二. 工厂方法
1. 由对应的工厂来创建对象
2. 与简单工厂相比,代码设计复杂度提高了,调用也变得复杂了,但维护成本降低了,每次添加新的类时,只要添加对应的工厂,而不需要修改原有代码。 简单工厂每次添加新的类,需要修改原有创建对象的方法。
3. 代码
public interface IFactory { CalBase CreateCal(); } public class AddFactory : IFactory { public CalBase CreateCal() { return new CalAdd(); } } public class SubFactory : IFactory { public CalBase CreateCal() { return new CalSub(); } } public class MulFactory : IFactory { public CalBase CreateCal() { return new CalMul(); } } public class DivFactory : IFactory { public CalBase CreateCal() { return new CalDiv(); } }
三. 通过 反射 来简化工厂
【设计模式】 简单工厂,工厂方法,抽象工厂
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。