我正在尝试从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()为何/为什么发生?
最佳答案
有关系。 SodaImpSingleton
用CherrySodaImp
实例化。接下来,MediumSoda extends Soda
并在其构造函数中调用方法setSodaImp()
,该方法在抽象SodaImpSingleton.getTheSodaImp();
类中作为Soda
实现,该静态方法返回在第一行创建的CherrySodaImp
实例。
关于java - 例子来自fluffycat的Builder加上Singleton模式的困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16464444/