public Food VeggieSelect(Food order) { if (order.GetType() == (typeof(Olives))) { Olives olives = new Olives(); return olives; } if (order.GetType() == (typeof(Lettuce))) { Lettuce lettuce = new Lettuce(); return lettuce; } if (order.GetType() == (typeof(Spinach))) { Spinach spinach = new Spinach(); return spinach; } if (order.GetType() == (typeof(Pickles))) { Pickles pickles = new Pickles(); return pickles; } else { Lettuce lettuce = new Lettuce(); return lettuce; } }
static void Main(string[] args) { // 创建一个菠菜实例并调用模板方法 Vegetabel spinach = new Spinach(); spinach.CookVegetabel(); Console.WriteLine(); // 创建一个大白菜实例并调用模板方法 Vegetabel cabbage = new ChineseCabbage(); cabbage.CookVegetabel(); Console.Read(); }
public void TemplateTest() { { var a = new ConcreteClassA(); a.TemplateMethod(); var b = new ConcreteClassB(); b.TemplateMethod(); } { var spinach = new Spinach(); spinach.CookVegetabel(); var chineseCabbage = new ChineseCabbage(); chineseCabbage.CookVegetabel(); } }
/// <summary> /// 以不同的菜,但是其炒菜流程是一样的作为案例 /// </summary> /// <param name="args"></param> static void Main(string[] args) { //创建一个菠菜实例并调用模板方法 Console.WriteLine("炒菠菜"); Vegetable spinach = new Spinach(); spinach.CookVegetable(); spinach.PourOil(); spinach.HeatOil(); spinach.PourVegetable(); spinach.Stir_Fry(); //Console.WriteLine("-----------------\n"); //Console.WriteLine("炒白菜"); //ChineseCabbage chineseCabbage=new ChineseCabbage(); //chineseCabbage.PourVegetable(); //Console.WriteLine("-----------------\n"); Console.Read(); }
public object FindItem(string order) { if (order == "Shredded Cheddar") { ShreddedCheddar shredChed = new ShreddedCheddar(); return(shredChed); } else if (order == "Provolone") { Provolone prov = new Provolone(); return(prov); } else if (order == "Cheddar Jack") { CheddarJack chedJack = new CheddarJack(); return(chedJack); } else if (order == "Colby Jack") { ColbyJack colbyJack = new ColbyJack(); return(colbyJack); } else if (order == "Seven Grain Wheat Bread") { SevenGrainWheatBread sevenWheat = new SevenGrainWheatBread(); return(sevenWheat); } else if (order == "Wheat Bread") { WheatBread wheat = new WheatBread(); return(wheat); } else if (order == "Italian") { Italian italian = new Italian(); return(italian); } else if (order == "Tortilla") { Tortilla tortilla = new Tortilla(); return(tortilla); } else if (order == "Coke") { Coke coke = new Coke(); return(coke); } else if (order == "Mountain Dew") { MountainDew mtnDew = new MountainDew(); return(mtnDew); } else if (order == "Milk") { Milk milk = new Milk(); return(milk); } else if (order == "Orange Juice") { OrangeJuice OJ = new OrangeJuice(); return(OJ); } else if (order == "Coffee") { Coffee coffee = new Coffee(); return(coffee); } else if (order == "Gatorade") { Gatorade gatorade = new Gatorade(); return(gatorade); } else if (order == "Ham") { Ham ham = new Ham(); return(ham); } else if (order == "Turkey") { Turkey turkey = new Turkey(); return(turkey); } else if (order == "Roast Beef") { RoastBeef beef = new RoastBeef(); return(beef); } else if (order == "Salami") { Salami salami = new Salami(); return(salami); } else if (order == "Bacon") { Bacon bacon = new Bacon(); return(bacon); } else if (order == "Mayo") { Mayo mayo = new Mayo(); return(mayo); } else if (order == "Chipotle Mayo") { ChipotleMayo chipMayo = new ChipotleMayo(); return(chipMayo); } else if (order == "Olives") { Olives olives = new Olives(); return(olives); } else if (order == "Lettuce") { Lettuce lettuce = new Lettuce(); return(lettuce); } else if (order == "Spinach") { Spinach spinach = new Spinach(); return(spinach); } else if (order == "Pickles") { Pickles pickles = new Pickles(); return(pickles); } else { Ham ham = new Ham(); return(ham); } }
public override void OnDoubleClick(Mobile from) { if (m_sower == null || m_sower.Deleted) { m_sower = from; } if (from.Mounted && !CropHelper.CanWorkMounted) { from.SendMessage("You cannot harvest a crop while mounted."); return; } if (DateTime.Now > lastpicked.AddSeconds(3)) // 3 seconds between picking { lastpicked = DateTime.Now; int cookValue = (int)from.Skills[SkillName.Cooking].Value / 20; if (cookValue == 0) { from.SendMessage("You have no idea how to harvest this crop."); return; } if (from.InRange(this.GetWorldLocation(), 1)) { if (m_yield < 1) { from.SendMessage("There is nothing here to harvest."); if (PlayerCanDestroy && !(m_sower.AccessLevel > AccessLevel.Counselor)) { UpRootGump g = new UpRootGump(from, this); from.SendGump(g); } } else //check skill and sower { from.Direction = from.GetDirectionTo(this); from.Animate(from.Mounted ? 29:32, 5, 1, true, false, 0); if (from == m_sower) { cookValue *= 2; m_lastvisit = DateTime.Now; } if (cookValue > m_yield) { cookValue = m_yield + 1; } int pick = Utility.Random(cookValue); if (pick == 0) { from.SendMessage("You do not manage to harvest any crops."); return; } m_yield -= pick; from.SendMessage("You harvest {0} crop{1}!", pick, (pick == 1 ? "" : "s")); //PublicOverheadMessage( MessageType.Regular, 0x3BD, false, string.Format( "{0}", m_yield )); ((Item)this).ItemID = pickedGraphic; Spinach crop = new Spinach(pick); from.AddToBackpack(crop); if (SowerPickTime != TimeSpan.Zero && m_lastvisit + SowerPickTime < DateTime.Now && !(m_sower.AccessLevel > AccessLevel.Counselor)) { this.UpRoot(from); return; } if (!regrowTimer.Running) { //regrowTimer = new CropTimer( this ); regrowTimer.Start(); } } } else { from.SendMessage("You are too far away to harvest anything."); } } }
public static void Main(string[] args) { //单例模式 Console.WriteLine("---------Singleton----------"); var s1 = Singleton.GetSingleton(); var s2 = Singleton.GetSingleton(); Console.WriteLine(s1.GetHashCode()); Console.WriteLine(s2.GetHashCode()); //简单工厂模式 Console.WriteLine("---------SimpleFactory----------"); var f1 = SimpleFoodFactory.CreateFood("TomaoScrambledEggs"); f1.Print(); var f2 = SimpleFoodFactory.CreateFood("ShreddedPorkWithPotatoes"); f2.Print(); //工厂模式 Console.WriteLine("---------Factory----------"); Creator shreddedPorkWithPotatoesFactory = new ShreddedPorkWithPotatoesFactory(); Creator tomatoScrambledEggsFactory = new TomatoScrambledEggsFactory(); Creator minceMeatEggplantFactor = new MincedMeatEggplantFactory(); var tomatoScrambleEggs = tomatoScrambledEggsFactory.CreateFoodFactory(); tomatoScrambleEggs.Print(); var shreddedPorkWithPotatoes = shreddedPorkWithPotatoesFactory.CreateFoodFactory(); shreddedPorkWithPotatoes.Print(); var minceMeatEggplant = minceMeatEggplantFactor.CreateFoodFactory(); minceMeatEggplant.Print(); //抽象工厂模式 Console.WriteLine("---------AbstractFactory----------"); AbstractFactory nanChangFactory = new NanChangFactory(); nanChangFactory.CreateYaBo().Print(); nanChangFactory.CreateYaJia().Print(); AbstractFactory shangHaiFactory = new ShangHaiFactory(); shangHaiFactory.CreateYaBo().Print(); shangHaiFactory.CreateYaJia().Print(); AbstractFactory huNanFactory = new HuNanFactory(); huNanFactory.CreateYaBo().Print(); huNanFactory.CreateYaJia().Print(); //建造者模式 Console.WriteLine("---------Builder_Patterns----------"); var director = new Director(); Builder b1 = new BuildFirst(); Builder b2 = new BuildSecond(); director.Construct(b1); var c1 = b1.GetComputer(); c1.Show(); director.Construct(b2); var c2 = b2.GetComputer(); c2.Show(); //原型模式 Console.WriteLine("---------Prototype_Patterns----------"); MonkeyKingPrototype prototype = new ConcretePrototype("pipixiong"); MonkeyKingPrototype cloneMonkeyKingPrototype = prototype.Clone() as ConcretePrototype; Console.WriteLine("1:" + cloneMonkeyKingPrototype?.Id); MonkeyKingPrototype clonePrototype = prototype.Clone() as ConcretePrototype; Console.WriteLine("2:" + cloneMonkeyKingPrototype?.Id); //适配器模式 Console.WriteLine("---------Adapter_Patterns----------"); ThreeHole threeHole = new PowerAdapter(); threeHole.Request(); //桥接模式 Console.WriteLine("---------Bridge_Patterns----------"); RemoteControl remoteControl = new ConcreteRemote(); remoteControl.Implementor = new XiaoMi(); remoteControl.On(); remoteControl.Off(); remoteControl.SetChannel(); remoteControl.Implementor = new Samsung(); remoteControl.On(); remoteControl.Off(); remoteControl.SetChannel(); //装饰者模式 Console.WriteLine("---------Decorator_Patterns----------"); Phone phone = new ApplePhone(); Decorator stickerDecorator = new Sticker(phone); stickerDecorator.Print(); Console.WriteLine("---------"); Decorator accessoriesDecorator = new Accessories(phone); accessoriesDecorator.Print(); Console.WriteLine("---------"); var sticker = new Sticker(phone); var accessories = new Accessories(sticker); accessories.Print(); //组合模式 Console.WriteLine("---------Composite_Patterns----------"); var complexGraphics = new ComplexGraphics("一个复杂图形和两条线段组成的复杂图形"); complexGraphics.Add(new Line("线A")); var complexGraphicsCG = new ComplexGraphics("一个圆和一条线组成的复杂图形"); complexGraphicsCG.Add(new Circle("圆")); complexGraphicsCG.Add(new Line("线B")); complexGraphics.Add(complexGraphicsCG); var line = new Line("线C"); complexGraphics.Add(line); Console.WriteLine("复杂图形的绘制如下:"); Console.WriteLine("---------------------"); complexGraphics.Draw(); Console.WriteLine("复杂图形绘制完成"); Console.WriteLine("---------------------"); complexGraphics.Remove(line); Console.WriteLine("移除线段C后,复杂图形的绘制如下:"); Console.WriteLine("---------------------"); complexGraphics.Draw(); Console.WriteLine("复杂图形绘制完成"); Console.WriteLine("---------------------"); //外观模式 Console.WriteLine("---------Facade_Patterns----------"); var facade = new RegistrationFacade(); if (facade.RegisterCourse("设计模式", "pomelo")) { Console.WriteLine("选课成功"); } else { Console.WriteLine("选课失败"); } //享元模式 Console.WriteLine("---------Flyweight_Patterns----------"); var externalstate = 10; var factory = new FlyweightFactory(); var flyweightA = factory.GetfFlyweight("A"); flyweightA?.Operation(externalstate); var flyweightB = factory.GetfFlyweight("B"); flyweightB?.Operation(externalstate); var flyweightC = factory.GetfFlyweight("C"); flyweightC?.Operation(externalstate); var flyweightD = factory.GetfFlyweight("D"); if (flyweightD != null) { flyweightD.Operation(externalstate); } else { Console.WriteLine("驻留池中不存在字符串D"); // 这时候就需要创建一个对象并放入驻留池中 var d = new ConcreteFlyweight("D"); factory.Flyweights.Add("D", d); } //代理模式 Console.WriteLine("---------Proxy_Patterns----------"); Person proxy = new Friend(); proxy.BuyProduct(); //模板方法 Console.WriteLine("---------Template_Patterns----------"); var spinach = new Spinach(); spinach.cookVegetable(); //命令模式 Console.WriteLine("---------Command_Patterns----------"); var receiver = new Receiver(); Command command = new ConcreteCommand(receiver); var invoke = new Invoke(command); invoke.ExecuteCommand(); //迭代器模式 Console.WriteLine("---------Iterator_Patterns----------"); IListCollection list = new ConcreteList(); var terator = list.GetITerator(); while (terator.MoveNext()) { var i = (int)terator.GetCurrent(); Console.WriteLine(i.ToString()); terator.Next(); } //观察者模式 Console.WriteLine("---------Observer_Patterns----------"); TenXun tenXun = new TenXunGame("LOL", "游戏需要更新"); tenXun.AddObserver(new Subscriber("pomelo")); tenXun.AddObserver(new Subscriber("yuuko")); tenXun.Update(); //中介者模式 Console.WriteLine("---------Mediator_Patterns----------"); AbstractCardPartner a = new ParterA(); AbstractCardPartner b = new ParterB(); a.MoneyCount = 20; b.MoneyCount = 20; AbstractMediator mediator = new MediatorPater(a, b); a.ChangCount(5, mediator); Console.WriteLine("A现在的钱是:{0}", a.MoneyCount); Console.WriteLine("B现在的钱是:{0}", b.MoneyCount); b.ChangCount(10, mediator); Console.WriteLine("A现在的钱是:{0}", a.MoneyCount); Console.WriteLine("B现在的钱是:{0}", b.MoneyCount); //状态者模式 Console.WriteLine("---------state_Patterns----------"); var account = new Account("pomelo"); account.Deposit(1000); account.Deposit(200); account.Deposit(600); account.PayInterest(); account.Withdraw(2000); account.Withdraw(500); //策略者模式 Console.WriteLine("---------stragety_Patterns----------"); var operation = new InterestOperation(new PersonalTaxStrategy()); Console.WriteLine("个人支付的税为:{0}", operation.GetTax(5000.00)); operation = new InterestOperation(new EnterpriseTaxStrategy()); Console.WriteLine("企业支付的税为:{0}", operation.GetTax(50000.00)); //责任链模式 Console.WriteLine("---------Responsibility_Patterns----------"); var purchaseRequest = new PurchaseRequest(4000, "phone"); var softPurchaseRequest = new PurchaseRequest(10000, "vs"); var computeRequest = new PurchaseRequest(40000, "computer"); Approver manager = new Manager("pomelo"); Approver vp = new VicePresident("yuuko"); Approver pre = new President("jesse"); manager.NextApprover = vp; vp.NextApprover = pre; manager.ProcessRequest(purchaseRequest); manager.ProcessRequest(softPurchaseRequest); manager.ProcessRequest(computeRequest); //访问者模式 Console.WriteLine("---------Vistor_Patterns----------"); var objectStructure = new ObjectStructure(); foreach (Element e in objectStructure.Elements) { e.Accept(new ConcreteVistor()); } //备忘录模式 Console.WriteLine("---------Memento_Patterns----------"); var persons = new List <ContactPerson> { new ContactPerson { Name = "Pomelo", MobileNum = "123445" }, new ContactPerson { Name = "Yuuko", MobileNum = "234565" }, new ContactPerson { Name = "Jeese ", MobileNum = "231455" } }; var mobileOwner = new MobileOwner(persons); mobileOwner.Show(); var caretaker = new Caretaker(); caretaker.ContactMementoDic.Add(DateTime.Now.ToString(CultureInfo.InvariantCulture), mobileOwner.CreateContactMemento()); Console.WriteLine("----移除最后一个联系人--------"); mobileOwner.ContactPersons.RemoveAt(2); mobileOwner.Show(); Thread.Sleep(1000); caretaker.ContactMementoDic.Add(DateTime.Now.ToString(CultureInfo.InvariantCulture), mobileOwner.CreateContactMemento()); Console.WriteLine("-------恢复联系人列表,请从以下列表选择恢复的日期------"); var keyCollection = caretaker.ContactMementoDic.Keys; foreach (var k in keyCollection) { Console.WriteLine("Key = {0}", k); } while (true) { Console.Write("请输入数字,按窗口的关闭键退出:"); var index = -1; try { index = int.Parse(Console.ReadLine()); } catch { Console.WriteLine("输入的格式错误"); continue; } if (index < keyCollection.Count && caretaker.ContactMementoDic.TryGetValue(keyCollection.ElementAt(index), out var contactMentor)) { mobileOwner.RestoreMemento(contactMentor); mobileOwner.Show(); } else { Console.WriteLine("输入的索引大于集合长度!"); } } }
public object FindItem(string order) { if (order == "Shredded Cheddar") { ShreddedCheddar shredChed = new ShreddedCheddar(); return shredChed; } else if (order == "Provolone") { Provolone prov = new Provolone(); return prov; } else if (order == "Cheddar Jack") { CheddarJack chedJack = new CheddarJack(); return chedJack; } else if (order == "Colby Jack") { ColbyJack colbyJack = new ColbyJack(); return colbyJack; } else if (order == "Seven Grain Wheat Bread") { SevenGrainWheatBread sevenWheat = new SevenGrainWheatBread(); return sevenWheat; } else if (order == "Wheat Bread") { WheatBread wheat = new WheatBread(); return wheat; } else if (order == "Italian") { Italian italian = new Italian(); return italian; } else if (order == "Tortilla") { Tortilla tortilla = new Tortilla(); return tortilla; } else if (order == "Coke") { Coke coke = new Coke(); return coke; } else if (order == "Mountain Dew") { MountainDew mtnDew = new MountainDew(); return mtnDew; } else if (order == "Milk") { Milk milk = new Milk(); return milk; } else if (order == "Orange Juice") { OrangeJuice OJ = new OrangeJuice(); return OJ; } else if (order == "Coffee") { Coffee coffee = new Coffee(); return coffee; } else if (order == "Gatorade") { Gatorade gatorade = new Gatorade(); return gatorade; } else if (order == "Ham") { Ham ham = new Ham(); return ham; } else if (order == "Turkey") { Turkey turkey = new Turkey(); return turkey; } else if (order == "Roast Beef") { RoastBeef beef = new RoastBeef(); return beef; } else if (order == "Salami") { Salami salami = new Salami(); return salami; } else if (order == "Bacon") { Bacon bacon = new Bacon(); return bacon; } else if (order == "Mayo") { Mayo mayo = new Mayo(); return mayo; } else if (order == "Chipotle Mayo") { ChipotleMayo chipMayo = new ChipotleMayo(); return chipMayo; } else if (order == "Olives") { Olives olives = new Olives(); return olives; } else if (order == "Lettuce") { Lettuce lettuce = new Lettuce(); return lettuce; } else if (order == "Spinach") { Spinach spinach = new Spinach(); return spinach; } else if (order == "Pickles") { Pickles pickles = new Pickles(); return pickles; } else { Ham ham = new Ham(); return ham; } }
public override void OnDoubleClick(Mobile from) { if (m_sower == null || m_sower.Deleted) { m_sower = from; } if (from != m_sower) { from.SendMessage("You do not own this plant !!!"); return; } if (from.Mounted && !CropHelper.CanWorkMounted) { from.SendMessage("You cannot harvest a crop while mounted."); return; } if (DateTime.UtcNow > lastpicked.AddSeconds(3)) { lastpicked = DateTime.UtcNow; int cookValue = (int)from.Skills[SkillName.Cooking].Value / 20; if (cookValue == 0) { from.SendMessage("You have no idea how to harvest this crop."); return; } if (from.InRange(this.GetWorldLocation(), 1)) { if (m_yield < 1) { from.SendMessage("There is nothing here to harvest."); } else { from.Direction = from.GetDirectionTo(this); from.Animate(from.Mounted ? 29:32, 5, 1, true, false, 0); m_lastvisit = DateTime.UtcNow; if (cookValue > m_yield) { cookValue = m_yield + 1; } int pick = Utility.RandomMinMax(cookValue - 4, cookValue); if (pick < 0) { pick = 0; } if (pick == 0) { from.SendMessage("You do not manage to harvest any crops."); return; } m_yield -= pick; from.SendMessage("You harvest {0} crop{1}!", pick, (pick == 1 ? "" : "s")); if (m_yield < 1) { ((Item)this).ItemID = pickedGraphic; } Spinach crop = new Spinach(pick); from.AddToBackpack(crop); if (!regrowTimer.Running) { regrowTimer.Start(); } } } else { from.SendMessage("You are too far away to harvest anything."); } } }