다음 함수는 C에서 구현됩니다OCP를 만족시키는 함수를 수정하는 방법은 무엇입니까?
이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 포인트가 안정되지에서 새로운 분야가 될 것이다 종종 새로운 프로세스 코드가 function에 추가된다는 의미입니다. OCP를 만족시키기 위해 어떻게 수정 될 수 있습니까?
에 오신 것을 환영합니다 .... ... 당신이 조건 콜백의 컬렉션을 저장하는 무언가를 만들 수 주어진. 곧 [About] 페이지를 읽으십시오. '무언가가 모두 똑같습니까? 아니면 각각 다른 것입니까? '무엇이''p'가 가리키는 것을 수정합니까? 코드에서 ''의 중요성은 무엇입니까? 함수가 리턴 타입을 가지지 않는 이유는 무엇입니까? –
질문에 유용한 정보가 충분하지 않습니다. OCP에서는 코드가 기능을 확장하는 메커니즘을 제공해야합니다. 핵심 기능을 확장하기 위해 귀하의 코드에서 제공하는 메커니즘은 무엇입니까? –
'struct_XX의 정의를 자유롭게 바꿀 수 있습니까? 아니면 고정되어 있다면 우리에게 보여주세요. –