我正在尝试从fluffycat生成器示例

SodaImpSingleton sodaImpSingleton = new SodaImpSingleton(new CherrySodaImp());
System.out.println("testing medium soda on the cherry platform");
MediumSoda mediumSoda = new MediumSoda();
mediumSoda.pourSoda();


在这里sodaImSingleton和mediumSuda之间没有关系,
仍然在调用mediumSoda.pourSoda()时打印
CherrySodaImp.pourSodaImp()为何/为什么发生?

最佳答案

有关系。 SodaImpSingletonCherrySodaImp实例化。接下来,MediumSoda extends Soda并在其构造函数中调用方法setSodaImp(),该方法在抽象SodaImpSingleton.getTheSodaImp();类中作为Soda实现,该静态方法返回在第一行创建的CherrySodaImp实例。

关于java - 例子来自fluffycat的Builder加上Singleton模式的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16464444/

10-11 20:51