0

インターフェイス (IDataSource) から継承するデータベース クラスと、ユーザーを表すクラスがあります。

私のギアを本当に磨くのは、どのクラスがデータベースからユーザーデータを取得する責任があるかです-ユーザークラスがクエリを実行するためにデータベースクラス/ IDataSourceのインスタンスを必要とするメソッドを定義する必要があるか、データベースクラスがメソッドを実装する必要がありますユーザーデータを受け取り、ユーザーオブジェクトを返す?

これは単なる一般的な質問であり、役立つ回答を読むことを楽しみにしています。

編集:

たぶん、以下がどのように機能するかを説明してください:

class ContactValidator : IValidator
{
public Boolean Validate(Contact contact) { ... /* check Name is unique in DB */ }
}

IValidator はどのように見えるでしょうか?

私の知る限り、それはどういうわけか次のようになります。

public interface IValidator{
bool Validate(???) 
}

「連絡先」をインターフェイスのパラメーターとして設定することはできません。そうしないと、インターフェイスを実装するすべてのクラスで、パラメーターとして連絡先が必要になります。

コンパイラーがパラメーターの型について不平を言うことなく、「オブジェクト」をパラメーターとして定義することは可能ですか?

@ Active Records 対リポジトリ - 賛否両論?

私が見つけた唯一の解決策は次のとおりです。

public interface IValidator<T> {
bool Validate(T obj)
}

または、複数のクラスで機能させる別の方法はありますか?

4

0 に答える 0