Many patterns can be gathered into one structure with a Switch statement,
function1[{a_, b_, c_}] :=
Switch[{a, b, c},
{_?NumberQ, _?NumberQ, _String}, {a, b, a + b + 1},
{_String, _?NumberQ, _?NumberQ}, {b + c - 1, b, c},
{_?NumberQ, _String, _?NumberQ}, {a, 2*(a + c), c},
{_, _, _}, {a, b, c}]
In[ ]:= function1[{10, 20, "30"}]
Out[ ]= {10, 20, 31}
In[ ]:= function1[{"10", 20, "30"}]
Out[ ]= {"10", 20, "30"}