One line definition of a symbol with plus-minus

The most robust way I know of would be to use the built in Notation package and write something like

Needs["Notation´"]

Symbolize[H±]  (* Be careful to use the Writing Assistant palette or other formatting guides s.t. the definition actually displays like you want it to and not Subscript or similar means *)

H±[x_, y_] := f[x] ± g[y] (* Same caveat about typesetting applies here as well *)

Then you get

In[1] := H±[1,2]
Out[1]:= f[1]±g[2]

In Mathematica it should look like this:

Notation´ and Symbolize in action.


Clear[H]

H[s_][x_, y_] := 
 f[x] + Piecewise[{{-1, s === "-"}}, 1]*g[y] /; s === "+" || s === "-"

Examples:

{H["+"][x, y], H["-"][x, y]}

(*  {f[x] + g[y], f[x] - g[y]}  *)

Or

Clear[H]

H[s_][x_, y_] := f[x] + Sign[s]*g[y] /; Abs[s] === 1

Examples:

{H[1][x, y], H[-1][x, y]}

(*  {f[x] + g[y], f[x] - g[y]}  *)

Here is a version that allows you to use $H_+$ and $H_-$ as requested:

(h:SubPlus|SubMinus)[H] ^:= With[
    {hh=Replace[h, {SubPlus->Plus, SubMinus->Subtract}]},
    hh[f[#1], g[#2]]&
]

A couple examples:

SubPlus[H][x, y]
SubMinus[H][2, 3]

f[x] + g[y]

f[2] - g[3]

This is how the above appears in a notebook:

enter image description here