一連の Web サイトで RSS ストリームを取得するために誰かが入力したい次のスケルトン クラスを取り上げます。
public class RSSStream extends Thread {
public RSSStream(String rssStreamName,String rssURL,int refreshTime){
// constructor code goes here
}
}
ここで、refreshTime が 0 より大きくなければならず、rssURL が有効な http アドレスでなければならないことを考えてみましょう。
明白な反射は、コンストラクター内にロジックをチェックするいくつかの値を持つことです。ただし、コンストラクターへの呼び出しは、何が起こってもオブジェクトをインスタンス化します。これは、値がその仕事をすることを許可しない場合、オブジェクトが役に立たなくなることを意味します。これは、オブジェクトを最終的にダンプまたは再利用する必要があることも意味します。
そこで、この件に関するいくつかの質問を以下に示します。
- 一部のクラスは、おそらくプライベート コンストラクターと組み合わせて getInstance() メソッドを強制するのはなぜですか? よく覚えていれば、1 つの例は GregorianCalendar でしょう。
- これと同じアプローチをどのような場合に使用しますか?
- ほとんどの場合、コンストラクターにチェックロジックがありますか?
- もしそうなら、ドメインモデルの永続コンテキストで使用されるエンティティスタイルのクラスにこれを適用しますか?
すべての回答を歓迎します。最も一般的な方法を明確に理解することは興味深いでしょう。