Stateless BusinessLogicパターンへの疑問

何か大きな勘違いをしてるかもしれないのですが。


まず。データDと、そのデータを使用するメソッドAとメソッドBがあるとします。また、メソッドAとメソッドB、双方ともにデータDに対して副作用を引き起こすものと仮定します。

この時、メソッドAとメソッドBの間には依存性が存在しています存在する可能性があります。ここで言う依存性とは、例えばメソッドAを変更するとメソッドBへ影響が出る。逆にメソッドBを変更するとメソッドAへ影響が出る。そういった関係のことを指します。

メソッドA、B間でデータDを共有するにはいくつか方法がありますが(例えばグローバル変数インスタンス変数、メソッドパラメータ経由など)、例えどのデータ共有手段をとったとしてもメソッドAとメソッドBの依存性を解決することはできません。データの共有方法は変数スコープに属する話題であって、データを共有するメソッド間の依存性に属する話題ではないのです。
# ちなみに。データDが Immutableだったり、メソッドAとメソッドBが副作用を伴わない場合は依存性は発生しませんね。

…というのがボクの認識です。


さて。ここからが本題。

以前から悩んでいたのですが、ひがさんのStateless BusinessLogicパターンには

...
業務ロジックからデータを分離することで、Statelessにする準備は整った。
それではなぜ、Statelessにすることが複雑な業務システムを開発するための銀の弾丸なのだろうか。
Statelessにするとメソッド間の依存関係を0にできる。あるメソッドの呼び出しが、別のメソッドに影響を与えることはない。
例えば、100のメソッドで構成される複雑なロジックがあったとしよう。
実際に起こる可能性のあるメソッドの組み合わせは1,000,000パターンあるとする。すべてのパターンをテストするのは不可能に近い。
しかし、業務ロジックがStatelessなら話は簡単だ。組み合わせを考えることなく、100のメソッドを単体できちんとテストするだけで良い。
...

とあります。ここでのひがさんの主張は

データの共有方法を「インスタンス変数による共有」から「メソッドパラメータ経由による共有」にすることで、メソッド間の依存性を0にできる

ということだと思うのですが、上で述べましたとおり

データの共有方法を変えても、データを共有するメソッド間の依存性を解決することはできない

つまり「メソッドパラメータ経由によるデータ共有」を行っても依存性を0にすることはできないのではないでしょうか?