2016-11-12 9 views
-3

私は助けが必要です。私は自分のコードのためのデザインパターンを呼び出す方法をインターネット上で探していますが、私はそれを見つけていません。 私はすべてのエクササイズ(DBまたは配列内で問題はありません)を持っているgetterとsetterおよびmanagerを持つクラス(f.e. exercise)を持っています。私のアプリケーションでは、私はエクササイズマネージャーの1つのインスタンスを持っており、私はエクササイズをしています。デザインパターンはどうですか?

演習:

public class Exercise { 
    private Long id; 
    private String name; 

    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 
    public Long getId() { 
     return id; 
    } 
    public void setId(Long id) { 
     this.id = id; 
    } 
} 

練習マネージャー:

public interface ExerciseManager{ 
    void createExercise(Exercise exercise); 

    Exercise getExerciseById(Long id); 

    Collection<Exercise> getAllExercises(); 

    Exercise getExerciseByName(String name); 

    void updateExercise(Exercise exercise); 

    void deleteExercise(Long id); 

    Boolean isIdInDB(Long id); 
} 

public class ExerciseManagerImpl implements ExerciseManager{ 
    ... 
} 

メイン(f.e.):

public static void main(String[] args) { 
    DataSource dataSource = <some datasource>; 
    ExerciseManager exerciseManager = new ExerciseManagerImpl(dataSource); 
    Exercise newExercise = new Exercise(); 
    newExercise.setName("Name1"); 
    exerciseManager.createExercise(newExercise); 
    Exercise existExercise = exerciseManager.getExerciseByName("Name1"); 
    exerciseManager.deleteExercise(existExercise.getId()); 
} 
+5

これは最初に、これが名前付きのデザインパターンだと思いますか? –

+1

また、別の無関係な質問ですが、 'getExerciseById'はなぜ' Exercise'ではなく 'Dragon'を返しますか? –

+0

私は、より多くのコードで同様の構造を見たので、この構造を記述するためのデザインパターンが存在すると思います。 申し訳ありませんが、クラスの名前を変更するのを忘れました。もちろん、エクササイズは正しいです。 (私はすでに私の投稿を編集しています) –

答えて

0

これはあなたの永続層の一部となるdata access object、のように見えます。アプリケーションコード(Exerciseインスタンスを使用する)と永続化メカニズム(EXERCISESデータベーステーブルなど)との間のインターフェイスとして機能し、後者とのデカップリングを行います。

-1

が関与しているいくつかあります。

  • ファクトリ:特定のタイプのオブジェクトを作成できるクラスは1つのみです。
  • シングルトン:タイプのインスタンスは1つだけ存在します。
  • メディエータ:特定の種類の操作および管理専用です。

しかし、私は、あなたが探していることはORMである、と思う、のは、ウィキペディアの言うことを見てみましょう:

オブジェクトリレーショナルマッピング(ORM、O/RM、およびO/Rマッピングツール)in コンピュータサイエンスは、オブジェクト指向プログラミングで互換性のないタイプのシステム間でデータ を変換するためのプログラミングテクニックです。 言語。実際には、プログラミング言語内から を使用できる「仮想オブジェクトデータベース」が作成されます。

https://en.wikipedia.org/wiki/Object-relational_mapping

関連する問題