以下函数在 C 中实现:
function(struct_XX *p)
{
if(p->A)
{
if(p->B)
{
do something0;
}
if(p->C)
{
do something1;
}
if(p->D && p->E)
{
do something2;
}
if(p->Z)
{
do something3;
}
}
}
每个分支都有不同的事情要做,不满足开闭原则(因为p指向的结构体不稳定,经常会添加新的字段,这意味着新的流程代码会经常添加到函数中) ; 如何修改它以满足OCP?