如何避免大转换语句?

sai*_*int 4 php design-patterns

我有一个内部应用程序,其中一个函数包含太多的开关案例.

这是在php中开发的.此特定功能用于将更改写入数据库,并保留单个字段值的历史记录.所以它的作用是为每个领域都有一个案例,因为不同的领域需要应用不同的东西.

switch ($item){  
    case 'item1':  
        do_something();  
    case 'item2':  
        do_something_different():  
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下是否存在设计模式.每个项目的功能看起来也不是未来的证明.

更新: pastebin链接

aar*_*ing 9

这不是一个好的功能.它应该是三个函数edit_name,edit_manageredit_liscencedata.您可以将案例之间重复的所有内容移动到Change您应该定义的类的构造函数中.