モンキーパッチ
丁寧に作られていなかったり、ドキュメントが貧弱だったりするモンキーパッチからは、以下のような問題が引き起こされることがある:
状況が変わり、そのパッチが、変更される対象のオブジェクトに対して仮定していることがもう正しくなくなってしまった場合に、アップグレードにまつわる問題が引きおこされる。もしもパッチを適用したプロダクトが新バージョンになって変更されると、パッチが壊れて動作しなくなる可能性が高い。このような理由からほとんどの場合において、モンキーパッチは、条件をチェックして、適切な時だけ適用するように作られる。
もしも、同じメソッドに対して、2つのモジュールが同時にモンキーパッチを適用しようとすると、それがalias_method_chainのようなパターンを使用して書かれていない限りは後から実行した方が"勝ち"、もう片方のパッチは動作しない。
モンキーパッチを適用すると、ディスク上の元のソースコードと、見た目の振る舞いが異なるため、パッチの存在に気づかなかった人を混乱させる可能性がある。
例え使用されていなかったとしても、プログラミング言語内でモンキーパッチを適用できるということは、強いカプセル化を強制することと両立しないため、モンキーパッチの機能の有用性は問題である、と見る人も中にはいる。このオブジェクト間のカプセル化は、Object-capability_modelで必要とされる。