简单工厂模式——设计模式1

之前看设计模式时,模模糊糊的,晕晕的,当时看的是设计模式之禅,也许是我当时没有什么经验就直接想懂那些设计上的原理,也许是书不适合当时的我,我现在没什么印象了,但我觉得书还是挺好的。后来看到了《大话设计模式》,也是和其他一样欲罢不能然后不再触碰,这才是真正写给小白的书啊。

现在反正闲着,于是又拿起来看看呗。


敲代码,然后解释一下吧。

功能需求:写一个简单的计算器,输入两个数和运算符,输出结果。

关键:面向对象的思维。

如果一拿起来就想过程怎么运行然后写,那就错了,因为面向对象没用到。

大概就是下面这样子了,这就是纯C语言的风格

    public class Calculation
    {
        static void Main(String[] args)
        {
            try
            {
                Console.Write("输入数字Num1:");
                string strNum1 = Console.ReadLine();
                Console.Write("输入运算符(+、-、*、/):");
                string strOperate = Console.ReadLine();
                Console.Write("输入数字Num2:");
                string strNum2 = Console.ReadLine();
                string result = "";
                double num1=Convert.ToDouble(strNum1);
                double num2=Convert.ToDouble(strNum2);
                switch (strOperate)
                {   
                    case "+":
                        result = (num1 + num2).ToString();
                        break;
                    case "-":
                        result = (num1 - num2).ToString();
                        break;
                    case "*":
                        result = (num1 * num2).ToString();
                        break;
                    case "/":
                        if (num2==0)
                        {
                            result = "除数不能为0";
                        }
                        else
                        {
                            result = (num1 / num2).ToString();
                        }
                        result = (num1 + num2).ToString();
                        break;
                    default:
                        break;
                }
                Console.WriteLine("运算结果:" + result);

            }
            catch (Exception ex)
            {
                Console.WriteLine("输入有误:"+ex.Message);
            }
        }
    }


考虑到面向对象编程:通过封装、继承、多态把程序的耦合度降低,(上面代码的耦合度就是全部在一起,完全没有分开,如果要改写的话就只能修改这个main方法,完全谈不上解耦 ),以此提高程序的可维护性、灵活性、扩展性、可复用性。

第一步解耦:让页面与业务逻辑分离。后来发展到MVC。

代码:



你可能感兴趣的:(设计模式,设计模式,工厂模式,面向对象)