2015-10-27 15 views
5

は私がJ. Blochの効果的なJavaのを読んでいると、彼は次のよう言った:インターフェースがリリースされ、広く実装されて理解DAOパターンとインターフェイス

たら、変更する場合がほとんど 不可能です。

だから、今DAO-patternのためのシンプルなインターフェイスを検討:

public interface UserDao{ 

    public User getById(int id); 

    public Collection<User> getAll(); 

    public boolean delete(int userId); 

    public boolean update(User u); 

} 

をこれは、それが最初にリリースされたとき、私のDaoインターフェースが見えた方法です。今では、すべてのユーザーをregistration_dateなどで集計するために、ユーザーにいくつかの機能を追加する必要がありました。そこで、対応するメソッド宣言をDAOインターフェイスに追加して実装する必要がありました。

さらに、新しいDAO操作の追加が頻繁に行われるので、今のところ、DAOインターフェイスが多かれ少なかれ安定しているとは想像もできません。

多分私のDAOデザインの災難、またはインターフェイスはほとんどDAOに適していますか?

+1

あなたのインターフェイスからpublicキーワードを削除することができます。 – kkhipis

答えて

6

私は、J. Blochの文章は、あなたのDAOの場合ではなく、公開されたインターフェースであると考えています。

プログラマーがあなたのプラットフォームを使用できるように公開APIを作成してください。そのインタフェースを変更している場合は、プログラマーにコードを適合させる必要がありますので、これはイライラします。

しかし、内部アプリケーションの目的でインターフェイスを作成している場合、そのリスクは想定されておらず、必要に応じてインターフェイスを進化させる価値があります。

明らかに、インターフェイスを実装するクラスの数を考慮して、変更のコストを想定する必要があります。

+2

*私は、J.Blochの文章は、公開されたインターフェースを意味すると考えています。プロジェクトの内部インターフェイスは常に変化します。 – Manu

関連する問題