伍迷家园

让编程融入生活
随笔 - 92, 文章 - 0, 评论 - 2113, 引用 - 172
数据加载中……

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

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

    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,手机等需要移动系统的软件需要运算也可以用它呀。”
        小菜:“哈,面向对象不过如此。下会写类似代码不怕了。”
        大鸟:“别急,仅此而已,实在谈不上完全面向对象,你只用了面向对象三大特性的一个,还两个没用呢?”
        小菜:“面向对象三大特性不就是封装、继承和多态吗,这里我用到的应该是封装。这还不够吗?…………我实在看不出,这么小的程序如何用到继承。至于多态,其它我一直也不太了解它到底有什么好处,如何使用它。”
        大鸟:“慢慢来,有的东西好学了,你好好想想吧,我要去“魔兽”了,改时聊。”

(待续)

posted on 2006-08-31 09:35 伍迷 阅读(5699) 评论(14)  编辑 收藏 所属分类: 面向对象小菜编程成长记

评论

#1楼   回复  引用    

楼主说的确实对我很有用,多谢了!@_@~~
2006-09-17 11:36 | 化工[未注册用户]

#2楼   回复  引用    

大鸟:“哈,孺鸟可教也,:),写得不错,这样就完全把业务和界面分离了。”
小菜心中暗骂:“你才是鸟呢。”
=======================
呵呵,不错,文笔也很幽默~
2007-03-25 14:51 | kugou123

#3楼   回复  引用    

我要去“魔兽"了,我们的口语是“搞一把”
2007-03-28 16:44 | wuyisky[未注册用户]

#4楼   回复  引用  查看    

魔兽我要来。。。
写程序我吧行,玩魔兽我是高手哦
QQ:2828667
2007-04-10 10:47 | 邱韵      

#5楼   回复  引用    

工作游戏两不误 才是真正的高手吧 :)
2008-05-22 10:38 | 念时回复[未注册用户]

#6楼   回复  引用    

上述代码是用C++语言写的吗??怎么我有那么多词不认识呢??Console.write?? Convert.ToDouble(StrNumber B)?? Console.WriteLine??Console.ReadLine??
2008-06-13 21:12 | 白菜虫[未注册用户]

#7楼   回复  引用  查看    

我们经常讲的三层架构实际上也是降低耦合的一种策略,把UI和业务逻辑分离...
不知道这样理解对否?
2008-06-16 15:28 | Ivan-Yan      

#8楼[楼主]   回复  引用  查看    

@Ivan-Yan
理解正确
2008-06-16 15:41 | 伍迷      

#9楼   回复  引用    

string为什么小写啊!◎
2008-08-07 15:11 | 孽畜[未注册用户]

#10楼   回复  引用    

@白菜虫 不是用C++写的,用的是C#语言
Console.write 是在控制台输出
Convert.ToDouble(StrNumber B) 是类型转换,把String转成Double
Console.WriteLine 是换行
Console.ReadLine 是读取键盘输入

对C#语言感兴趣的话,找本书看下就知道了
2008-08-29 18:36 | Moon Summer[未注册用户]

#11楼   回复  引用  查看    

你好好想想吧,我要去“魔兽”了
大鸟,能一篇多写点不,这样看的很辛苦啊。
2008-10-27 17:27 | 依依之恋      



发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 491022




相关文章:

相关链接: