public PizzaHutPizzaFactory()
 {
     ///使用反射 產生相對應的物件
     beefPizze     = (IBeefPizza)Assembly.Load("designPatterns").CreateInstance("designPatterns.AbstractFactory.PizzaHutPizza.PH_BeefPizza");
     hawaiiPizza   = new PH_HawaiiPizza();
     seafoodPizza  = new PH_SeafoodPizza();
     takoyakiPizza = new PH_TakoyakiPizza();
 }
Exemple #2
0
        public ReflectionPizzaFactory()
        {
            //string storeName = "PizzaHutPizza";
            //string beefPizzeName = "PH_BeefPizza";
            //string hawaiiPizzaName = "PH_HawaiiPizza";
            //string seafoodPizzaName = "PH_SeafoodPizza";
            //string takoyakiPizzaName = "PH_TakoyakiPizza";
            string storeName         = ConfigurationManager.AppSettings["storeName"];
            string beefPizzeName     = ConfigurationManager.AppSettings["beefPizzeName"];
            string hawaiiPizzaName   = ConfigurationManager.AppSettings["hawaiiPizzaName"];
            string seafoodPizzaName  = ConfigurationManager.AppSettings["seafoodPizzaName"];
            string takoyakiPizzaName = ConfigurationManager.AppSettings["takoyakiPizzaName"];

            ///使用反射 產生相對應的物件
            beefPizze     = (IBeefPizza)Assembly.Load("designPatterns").CreateInstance($"designPatterns.AbstractFactory.{storeName}.{beefPizzeName}");
            hawaiiPizza   = (IHawaiiPizza)Assembly.Load("designPatterns").CreateInstance($"designPatterns.AbstractFactory.{storeName}.{hawaiiPizzaName}");
            seafoodPizza  = (ISeafoodPizza)Assembly.Load("designPatterns").CreateInstance($"designPatterns.AbstractFactory.{storeName}.{seafoodPizzaName}");
            takoyakiPizza = (ITakoyakiPizza)Assembly.Load("designPatterns").CreateInstance($"designPatterns.AbstractFactory.{storeName}.{takoyakiPizzaName}");
        }