Design patterns 为什么单例产生耦合?
我读了很多关于单身是紧密结合的,但我不明白它是如何紧密结合的。你能举个小例子吗?来自Scott Densmore singleton将您紧密地耦合到singleton对象的确切类型,从而消除了使用多态性替代另一种方法的机会 链接: 例如,如果您有一个抽象基类:Design patterns 为什么单例产生耦合?,design-patterns,singleton,coupling,Design Patterns,Singleton,Coupling,我读了很多关于单身是紧密结合的,但我不明白它是如何紧密结合的。你能举个小例子吗?来自Scott Densmore singleton将您紧密地耦合到singleton对象的确切类型,从而消除了使用多态性替代另一种方法的机会 链接: 例如,如果您有一个抽象基类: public abstract class Connection{ ... public abstract void getConnection(); } 和一个实现 public class OracleConnecti
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();
}
}
使用单例模式时,您只能使用您拥有的任何原始全局连接对象。如果您想在运行时使用其中一个或另一个,或同时使用这两个,则会很糟糕。你不能
根据singleton的定义,上面的内容只存在于一个没有扩展的具体类中,并且您只有一个连接对象。不是很灵活。像这样:
final class Connection {}
public class Connection{
...
public void getConnection(){
InitializeConnection(); // you're totally stuck with this connection
}
}