码迷,mamicode.com
首页 > 其他好文 > 详细

【设计模式】 简单工厂,工厂方法,抽象工厂

时间:2014-11-24 15:10:27      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   on   div   log   bs   代码   

 一. 简单工厂

  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();
        }
    }

三. 通过 反射 来简化工厂

  

  

 

 

 

 

  

【设计模式】 简单工厂,工厂方法,抽象工厂

标签:style   blog   color   sp   on   div   log   bs   代码   

原文地址:http://www.cnblogs.com/fzz2727551894/p/4118645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!