デザインパターンでは多態性を利用したパターンが多くあります。
それらの多態性を利用したパターンがもたらす効果としては「if文を減らす」という効果があります。
なぜif文を減らす必要があるのでしょうか。
端的に書くと、バグの可能性を減らすことができるから、です。
なぜバグの可能性を減らせるのでしょうか。
条件の判定を減らせるからです。
条件の判定が存在するということは、その分、考慮すべき対象が増えるということです。
条件の判定に対する考慮とは、この値のときはこっちの動きだけれど、この値のときはそっちの動きになる、ではあの値のときはどうなるだろう? ということです。
こうなると、考慮漏れが発生する可能性が発生します。
それが、バグの可能性、ということです。
多態性を利用したパターンでは、条件分岐をする代わりに、与えられたオブジェクトのメソッドを呼び出します。
そして、何をすべきか、は各オブジェクトが責任を持ちます。
処理の分岐の数が増える代わりにクラスの数が増えます。
分岐が減るということはすなわち、条件の判定が減ります。
この仕組みにより「条件の判定に対する考慮」から、メソッド(手続き)が呼び出された時に何をすべきか、に意識が変わります。
これはすなわち、実装に集中できる、ということになるのではないでしょうか。
条件の判定に対する考慮をしなくてはならないIf文を廃することで、バグが減ります。
バグを生む代表であるIf文を減らす方法の1つとして、オブジェクト指向が存在します。