データベースにアクセスするために、約50のメソッドを持つ大きなインターフェースを使用しています。インターフェイスは私の同僚によって書かれました。これについて話し合いました:
私:50の方法は多すぎます。コードの匂いです。
同僚:それについて私は何をすべきか?あなたはDBアクセスを望んでいます-あなたはそれを持っています。
私:ええ、でもそれは不明確で、将来的にはメンテナンスが困難です。
同僚:わかりました、そうです、それは良くありません。インターフェイスはどのように見えるべきですか?
私:それぞれ10個のメソッドを持つオブジェクトを返す5つのメソッドはどうでしょうか?
うーん、でもこれは同じでしょ?これは本当により明確になるでしょうか?努力する価値はありますか?
時々、インターフェースが必要な状況にあり、最初に頭に浮かぶのは、1つの大きなインターフェースです。これの一般的なデザインパターンはありますか?
更新(SJuanのコメントに対応):
「メソッドの種類」:データベースからデータを取得するためのインターフェースです。すべてのメソッドの形式は(疑似コード)です。
List<Typename> createTablenameList()
メソッドとテーブルは厳密には1対1の関係にあるわけではなく、常にデータベースから得られるある種のリストを取得するという事実に重点が置かれています。
List<WeatherDataRecord> createWeatherDataTable() {db.open(); return db.select("*", "tbl_weatherData");}
UserDao
CustomerDao
ProductDao