generated at
共通インターフェイスの罠
異なる複数のものがある
これらの操作を共通化しようと考える
共通のインターフェイスをつけようと考える
それぞれ別々に習得するコストがもったいないから
異なる複数のものにはそれぞれ異なった得意分野がある
理想は双方の長所を活かせることだが、しばしば双方の共通部分だけになり強みを失う

Aが持つ機能を、Bが持たない場合
路線1: サポートしない路線
実装は楽
上で書いた残念なことになる
路線2: エラーにする路線
例えばインターフェイスはあるが、実行するとエラーになる設計
結局「どのバックエンドでは何が使えるか」はユーザが理解しなければならない
路線3: 頑張って実装してしまう路線
例: 機械学習ライブラリScikit-Learnでは異なる学習モデルに共通インターフェイスを用意した。
モデルmに対してメソッド m.predict_proba は確率推定の結果を返す
確率推定の機能を持たないSVMに対してもこのメソッドが生えている
4/5のデータで5回SVMを走らせてロジスティック回帰している: SVMで確率推定
とても労力がかかる
必ずしも実装できるとは限らない
その場合、路線2に帰着する