それから、
> void parse(Map<Key,String> params)
> このメソッドはparams.get()しか呼ばないとする。

この考えはダメ。

parseがparams.getしか呼ばないということを、
「君は知っている」つまり
中の実装を気にしているってことだ。

関数同士の依存関係を薄く保つには
関数の中にコードに依存したコードを書いてはいけない。
parseが中で何をしているかを意識してはいけない。
ブラックボックスとして扱うべきだ。