すいません、オブジェクト思考等にお詳しい皆さんにご相談させてください

実現したい機能が A,B,Cと3つあります。
そこで3つの機能をどう提供しようかと考えたところいくつか思いつきました

1.クラス1内にPublicなメソッドxを作り、メソッドx内にてIF文を記述しA,B,Cそれぞれを記述する。

2.クラス1内にPublicなメソッドx、y、zを用意し呼びわけをしてもらう。

3.クラスを3つ用意しそれぞれのクラスを呼び分けてもらう。

もちろんA,B,C内で似たような機能はなんらかの形で共通化はします。
また、1で実現しているように呼ばれるメソッドの引数にはA,B,Cを特定させる
キーワードも存在するのも前提です。

自分だったら1,2,3のどれにするとか
1,2,3以外にもこんなデザインパターンに該当するからそれが良いのでは?等
お聞かせ願えたら嬉しいです。