首页 > 程序员 > 利用语言的动态特性减少switch

利用语言的动态特性减少switch

2010年4月21日 发表评论 阅读评论

以前也曾写过这样的代码,但没有特殊注意过,今天大家讨论收银台的问题时候,再提起这样的设计,却感觉非常有效。

因为分支很多,使用switch-case几乎是不可避免的,而这对与代码的维护与理解却不是一件很好的事情,在增加分支的时候,也是一种比较郁闷的事情。利用语言的动态特性与模块化的设计,可以在一定程度上减轻这种问题。

class A{};
class B{};

$arr_actions = array(
    'a' => 'A',
    'b' => 'B',
);

function do_action_no_switch($action){

    global $arr_actions;

    if(!array_key_exists($action, $arr_actions)){
        return false;
    }   

    $job = new $arr_actions[$action];

    //job->do...
}

do_action_no_switch('a');

---------------------------------------------------------------
本站作品根据创作共同协议进行授权, 转载时请务必以超链接形式标明文章原始出处
原文地址:http://www.mirecle.com/2010/04/21/reduce-the-use-of-the-dynamic-nature-of-language-switch.html
---------------------------------------------------------------

您可能会喜欢:

  1. 更换域名为www.mirecle.com
  2. 成都九寨归来
  3. wordpress插件之持久化链接
  4. 分享一段好听的音乐和一幅图片
  5. excel打开csv文件篡改问题/excel-数字-尾数变0-数字前加0
分类: 程序员 标签:

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.