随笔(2012-5-28读代码大全,未完待续)

摘记:尽量使用多态,避免大量的类型检查

频繁重复出现的case语句有时是在暗示,采用集成可能是种更好的设计选择--尽管并不总是这样。

switch (shape.type)

{

case Shape_Circle:

shape.DrawCircle();

break;

case Shape_Square:

shape.DrawSquare();

break;

……

}

在这个例子中,对

shape.DrawCircle()和

shape.DrawSquare()的调用应该叫shape.Draw()的方法来替代,因为无论形状是圆的还是方的都可以调用这个方法来绘制。

 

另外,case语句有时也用来把种类确时不同的对象和行为分开。下面就是一个在面向对象编程中合理采用case语句的例子:

 

 

switch(ui.Command()

 

 

{

 

 

case Command_OpenFile

:

 

OpenFile();

 

break;

 

case Command_Print:

 

Print();

 

break;

 

case Command_Save:

 

Save();

 

break;

 

……

 

}

 

 

此时也可以创建一个基类并派生一些派生类,再用多态的DoCommand()方法来实现每一种命令。但在像这个例子一样简单的场合中,DoCommand()意义实在不大,因此采用case语句才是最容易理解的方法。

 

未完待续(下次抽空整理下排版,上班时间抽空写的)

转载于:https://www.cnblogs.com/xinshijie/archive/2012/05/29/2524225.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值