これは、この素晴らしいWebページを長い間チェックした後の私の最初の質問です。
おそらく私の質問は少しばかげていますが、これについて他の人の意見を知りたいです。いくつかの特定のメソッドを作成する、または一方、1つのジェネリックメソッドのみを作成する方が良いのは何ですか?ここに例があります...
unsigned char *Method1(CommandTypeEnum command, ParamsCommand1Struct *params)
{
if(params == NULL) return NULL;
// Construct a string (command) with those specific params (params->element1, ...)
return buffer; // buffer is a member of the class
}
unsigned char *Method2(CommandTypeEnum command, ParamsCommand2Struct *params)
{
...
}
unsigned char *Method3(CommandTypeEnum command, ParamsCommand3Struct *params)
{
...
}
unsigned char *Method4(CommandTypeEnum command, ParamsCommand4Struct *params)
{
...
}
また
unsigned char *Method(CommandTypeEnum command, void *params)
{
switch(command)
{
case CMD_1:
{
if(params == NULL) return NULL;
ParamsCommand1Struct *value = (ParamsCommand1Struct *) params;
// Construct a string (command) with those specific params (params->element1, ...)
return buffer;
}
break;
// ...
default:
break;
}
}
後者のオプションで私が本当に好きではない主なことはこれです、
ParamsCommand1Struct *value = (ParamsCommand1Struct *) params;
「params」は「ParamsCommand1Struct」へのポインタではなく、「ParamsCommand2Struct」または他の誰かへのポインタである可能性があるためです。
本当にありがとうございました!