您的位置:知识库 »

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

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

系列文章导航:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


(续上篇) 
        小菜:“你的意思是分一个类出来? 哦,对的,让计算和显示分开。”
        大鸟:“准确的说,就是让业务逻辑与界面逻辑分开,让它们之间的耦合度下降。只有分离开,才容易达到容易维护或扩展。”
        小菜:“让我来试试看。”

    class Program
    
{
        
static void Main(string[] args)
        
{
            
try
            
{
                Console.Write(
"请输入数字A:");
                
string strNumberA = Console.ReadLine();
                Console.Write(
"请选择运算符号(+、-、*、/):");
                
string strOperate = Console.ReadLine();
                Console.Write(
"请输入数字B:");
                
string strNumberB = Console.ReadLine();
                
string strResult = "";

                strResult 
= Convert.ToString(Operation.GetResult(Convert.ToDouble(strNumberA),Convert.ToDouble(strNumberB),strOperate));
 
                Console.WriteLine(
"结果是:" + strResult);

                Console.ReadLine();


            }

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

        }

    }


    
public class Operation
    
{
        
public static double GetResult(double numberA,double numberB,string operate)
        
{
            
double result = 0d;
            
switch (operate)
            
{
                
case "+":
                    result 
= numberA + numberB;
                    
break;
                
case "-":
                    result 
= numberA - numberB;
                    
break;
                
case "*":
                    result 
= numberA * numberB;
                    
break;
                
case "/":
                    result 
= numberA / numberB;
                    
break;
            }

            
return result;
        }

    }


        小菜:“鸟哥,我写好了,你看看!”
        大鸟:“哈,孺鸟可教也,:),写得不错,这样就完全把业务和界面分离了。”
        小菜心中暗骂:“你才是鸟呢。”    口中说道:“如果你现在要我写一个Windows应用程序的计算器,我就可以复用这个运算类(Operation)了。”
        大鸟:“不单是Windows程序,Web版程序需要运算可以用它,PDA,手机等需要移动系统的软件需要运算也可以用它呀。”
        小菜:“哈,面向对象不过如此。下会写类似代码不怕了。”
        大鸟:“别急,仅此而已,实在谈不上完全面向对象,你只用了面向对象三大特性的一个,还两个没用呢?”
        小菜:“面向对象三大特性不就是封装、继承和多态吗,这里我用到的应该是封装。这还不够吗?…………我实在看不出,这么小的程序如何用到继承。至于多态,其它我一直也不太了解它到底有什么好处,如何使用它。”
        大鸟:“慢慢来,有的东西好学了,你好好想想吧,我要去“魔兽”了,改时聊。”

(待续)

0
0

热门文章

    最新文章

      最新新闻

        热门新闻