您的位置:知识库 »

小菜编程成长记(五 体会简单工厂模式的美妙)

作者: 伍迷  发布时间: 2008-09-04 14:30  阅读: 10796 次  推荐: 0   原文链接   [收藏]  

系列文章导航:

四大发明之活字印刷——面向对象思想的胜利

小菜编程成长记(一 面试受挫——代码无错就是好?)

小菜编程成长记(二 代码规范、重构)

小菜编程成长记(三 复制VS复用)

小菜编程成长记(四 业务的封装)

小菜编程成长记(五 体会简单工厂模式的美妙)

小菜编程成长记(五 体会简单工厂模式的美妙)

小菜编程成长记(五 体会简单工厂模式的美妙)

小菜编程成长记(六 工厂不好用了?)

小菜编程成长记(七 用“策略模式”是一种好策略)

小菜编程成长记(八 反射——程序员的快乐!)

小菜编程成长记(九 会修电脑不会修收音机?——聊设计模式原则)

小菜编程成长记(十 三层架构,分层开发)

小菜编程成长记(十一 无熟人难办事?——聊设计模式迪米特法则)

小菜编程成长记(十二 有了门面,程序员的程序会更加体面!)

小菜编程成长记(十三 设计模式不能戏说!设计模式怎就不能戏说?)


        小菜:“大鸟哥,我按照你说的方法写出来了一部分,首先是一个运算类,它有两个Number属性,主要用于计算器的前后数,然后有一个虚方法GetResult(),用于得到结果,然后我把加减乘除都写成了运算类的子类,继承它后,重写了GetResult()方法,这样如果要修改任何一个算法,都不需要提供其它算法的代码了。但问题来了,我如何让计算器知道我是希望用哪一个算法呢?”
        大鸟:“写得很不错吗,大大超出我的想象了,你现在的问题其实就是如何去实例化对象的问题,哈,今天心情不错,再教你一招‘简单工厂模式’,也就是说,到底要实例化谁,将来会不会增加实例化的对象(比如增加开根运算),这是很容易变化的地方,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂,来,我们看看这个类如何写。”

    /// <summary>
    
/// 运算类工厂
    
/// </summary>

    class OperationFactory
    
{
        
public static Operation createOperate(string operate)
        
{
            Operation oper 
= null;
            
switch (operate)
            
{
                
case "+":
                    
{
                        oper 
= new OperationAdd();
                        
break;
                    }

                
case "-":
                    
{
                        oper 
= new OperationSub();
                        
break;
                    }

                
case "*":
                    
{
                        oper 
= new OperationMul();
                        
break;
                    }

                
case "/":
                    
{
                        oper 
= new OperationDiv();
                        
break;
                    }

             }


            
return oper;
        }

    }
0
0

热门文章

    最新文章

      最新新闻

        热门新闻