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"}