在JAVA編程語言中,經常會用到山羊和狼的例子來解釋程序設計模式。
山羊代表“抽象工廠模式”,它可以創建各種不同類型的對象,而不需要暴露任何具體的實現細節。狼則代表“單例模式”,保證了一個類只有一個實例,并提供了對該實例的全局訪問。
public abstract class GoatFactory { public static GoatFactory getFactory(boolean fairytale) { if (fairytale) { return new FairytaleGoatFactory(); } else { return new RealGoatFactory(); } } public abstract FarmAnimal createAnimal(); } public class RealGoatFactory extends GoatFactory { public FarmAnimal createAnimal() { return new Goat(); } } public class FairytaleGoatFactory extends GoatFactory { public FarmAnimal createAnimal() { return new UnicornGoat(); } } public class Wolf { private static Wolf instance; private Wolf() {} public static Wolf getInstance() { if (instance == null) { synchronized (Wolf.class) { if (instance == null) { instance = new Wolf(); } } } return instance; } }
以上的代碼示例展示了山羊如何使用抽象工廠模式來創建不同類型的動物,并且調用者不需要了解每個具體類型的實現細節。而狼則使用了單例模式來保證只有一個狼的實例存在,并且所有需要使用狼對象的地方都可以通過靜態方法獲取到同一個對象。
上一篇php app init
下一篇3306 php管理