2
シングルトンについてよく読んでいますが、強くカップルですが、どうやって強く結びついているのか分かりません。あなたはそれのための小さな例を与えることができますか?スコットDensmoreからシングルトンがカップリングを行う理由は?
シングルトンについてよく読んでいますが、強くカップルですが、どうやって強く結びついているのか分かりません。あなたはそれのための小さな例を与えることができますか?スコットDensmoreからシングルトンがカップリングを行う理由は?
、
シングルトンシングルトンオブジェクトの正確な型にしっかりとカップルあなたを、代替を置換する多型を使用する機会を取り除きます。
リンク: https://blogs.msdn.microsoft.com/scottdensmore/2004/05/25/why-singletons-are-evil/
たとえば、あなたは、抽象基本クラスを持っていた場合:
public abstract class Connection{
...
public abstract void getConnection();
}
と実装
public class OracleConnection extends Connection{
...
@Override
public void getConnection(){
InitializeOracle();
}
}
、別の
public class PostgresConnection extends Connection{
...
@Override
public void getConnection(){
InitializePostgres();
}
}
シングルトンパターンを使用すると、元のグローバル接続オブジェクトに慣れてしまいます。実行時にどちらか一方または両方を使用したい場合はうんざりします。できません。
シングルトンの定義によって、上記は拡張子のない1つの具体的なクラスになり、1つの接続オブジェクトしか持たないでしょう。柔軟性はあまりありません。このように:
final class Connection {}
public class Connection{
...
public void getConnection(){
InitializeConnection(); // you're totally stuck with this connection
}
}