つまり、関心は別なんだけど実装が同じなんだよ!それはどうするの!という話です。そういうときには、伝統的なオブジェクト指向ならば「手続きだけに関心を持ち、データには関心を持たないクラス」ってのを作って、そのクラス(やインスタンス)をデータに責任を持つクラスが保持し、実際の処理は「手続きだけに関心を持つクラスのメソッドを呼ぶ」というやりかたをすると良いでしょう。この「手続きだけに関心を持つ」ってのが最初は理解しづらいのだけれど、そのあたりはストラテジーパターンとかブリッジパターンとかコマンドパターンみたいなのをを学んでみると良いでしょう。このあたりの話をシンプルに表現すると、「実装の再利用に継承を使うな、委譲を使え」というフレーズになるわけですね。
猫型の蓄音機は 1 分間に 45 回にゃあと鳴く - 猫型プログラミング言語史観(1) 〜あるいはオブジェクト指向における設計指針のひとつ〜