JAva設計モデル
2205 ワード
単一インスタンス設計モデルは、文字通り、クラスに1つのクラスのオブジェクトしか作成できないため、クラスのオブジェクトを繰り返し作成して特定のデータの変化による不確実性を回避することができます.例えば、スレッドゲームをするときに使うデータはもちろんたくさんありますが、分類しないと、必ず異なるデータを異なるクラスに分けます.この場合、あるクラスで別のクラスのオブジェクトやデータを呼び出す必要がある場合は、このクラスを渡さなければなりません.しかし,我々のプロジェクトでクラスが比較的多い場合,伝達する値が比較的多い場合,我々のクラスのオブジェクト作成プロセスは複雑になることを考慮した.そして最後に私たちは自分のコードに頭を奪われるかもしれません.この問題は私も前に出会ったことがあります.そこで,単一インスタンス設計モデルについて簡単に紹介する.
ここではデータクラスDataを作成します.このクラスでは、すべてのデータをクラスのgetメソッドで取得する必要があります.
public class Data {
//
private static Data instance;
private int screenWidth=600;
private int screenHeight=500;
// ,
private Data(){
}
public int getScreenWidth() {
return screenWidth;
}
public int getScreenHeight() {
return screenHeight;
}
//
public static Data getInstance() {
// instance , Data , Data
if(instance == null){
instance = new Data();
}
return instance;
}
}
簡単なまとめでは、単一インスタンスモデルには、静的なデータオブジェクトを返すためのプライベートコンストラクタが必要ですが、データの属性、データは、他のクラスで呼び出すためにクラスでgetメソッドを実装する必要があります.ここではFrameを作成します.public class UI {
JFrame jf = new JFrame();
// Data , data
Data data = Data.getInstance();
public void init(){
jf.setSize(data.getScreenWidth(),data.getScreenHeight());
jf.setVisible(true);
}
}
これらを言うと,これが単一インスタンスモデルの最も簡単な応用である.実はこの方法以外にも
staticキーワードで実現します.しかしstaticキーワードの方法は上とは異曲同工の妙がある.ただ、後者は方法の実現が多い.前者はデータの伝達上のものである.
簡単な設計モデルも紹介します.
工場設計モデルこのモデルはどう言いますか.上の単一インスタンス設計モデルと似ていても違いがあります.ここでは、StudentクラスとTeacherクラスの両方がPersonインタフェースを実装して説明する.別のクラスTestでは,この2つのクラスのインスタンスを2つの静的手法で返すことができる.
public class Test{
public static Person getTeacher(){
return new Teacher();
}
public static Person getStudent() {
return new Student();
}
}
これは,主関数のクラスでTestクラスの静的メソッドを呼び出してTeacherクラスとStudioクラスのオブジェクトを取得できることである.簡単な説明は実は簡単で、重要なのは私たちがゲームをする時に彼らを運用することができれば、私たちのコードの可読性を大幅に向上させることができます.