public void ShouldGetRubberDuckCanSwimButNotFlyAndSqueakQuack() { var quack = new RubberDuck(); quack.SetFlyBehaviour(new FlyNoWay()); quack.SetQuackBehaviour(new Squeak()); quack.Display(); quack.PerformQuack(); quack.Swim(); quack.Display(); }
private static void Main() { var mallardDuck = new MallardDuck(); mallardDuck.Display(); mallardDuck.PerformQuack(); mallardDuck.Swim(); mallardDuck.PerformFly(); Console.WriteLine(); var redheadDuck = new RedheadDuck(); redheadDuck.Display(); redheadDuck.PerformQuack(); redheadDuck.Swim(); redheadDuck.PerformFly(); Console.WriteLine(); var rubberDuck = new RubberDuck(); rubberDuck.Display(); rubberDuck.PerformQuack(); rubberDuck.Swim(); rubberDuck.PerformFly(); Console.WriteLine(); var decoyDuck = new DecoyDuck(); decoyDuck.Display(); decoyDuck.Swim(); Console.WriteLine(); Console.Write("Press Enter to exit ..."); Console.ReadLine(); }
public void TestMethod1() { IFlyBehaviour flyBehaviour = new FlyBehaviour(); MallardDuck mallardDuck = new MallardDuck(flyBehaviour); RedheadDuck redheadDuck = new RedheadDuck(flyBehaviour); IFlyBehaviour noFlyBehaviour = new NoFlyBehaviour(); RubberDuck rubberDuck = new RubberDuck(noFlyBehaviour); mallardDuck.Display(); mallardDuck.Fly(); redheadDuck.Display(); redheadDuck.Fly(); rubberDuck.Display(); rubberDuck.Fly(); rubberDuck.ChangeFlyBehaviour(flyBehaviour); rubberDuck.Fly(); redheadDuck.Swim(); mallardDuck.Swim(); rubberDuck.Swim(); }
public void RubberDuck_Should_Quack_Swim_Display() { var rubberDuck = new RubberDuck(); Assert.Equal("squeak", rubberDuck.PerformQuack()); Assert.Equal("swim", rubberDuck.Swim()); Assert.Equal("looks like a rubberduck", rubberDuck.Display()); }
public static void Run() { var rubberDuck = new RubberDuck(); var wildDuck = new WildDuck(); System.Console.WriteLine("Rubber Duck:"); rubberDuck.Display(); System.Console.WriteLine("Wild Duck:"); wildDuck.Display(); }
public void RubberDuck_ShouldCantFlyAndSqueakAndDisplay() { //Arrange Duck rubber = new RubberDuck(); //Act var fly = rubber.PerformFly(); var quack = rubber.PerformQuack(); var display = rubber.Display(); //Assert fly.Should().Be("I can't fly."); quack.Should().Be("Squeak"); display.Should().Be("I'm a Rubber duck"); }
static void Main() { Duck RubberDuck = new RubberDuck(); RubberDuck.PerformFly(); RubberDuck.PerformQuack(); RubberDuck.Display(); Duck FredTheEagle = new Eagle(); FredTheEagle.PerformFly(); FredTheEagle.PerformQuack(); FredTheEagle.Display(); Console.ReadKey(); }
static void Main(string[] args) { Bird christianBird = new RubberDuck(); christianBird.Display(); christianBird.SetFlyBehavior(new YesFly()); christianBird.PerformFly(); christianBird.PerformQuack(); christianBird.Swim(); Bird mortyBird = new Swallow(); mortyBird.Display(); mortyBird.PerformFly(); mortyBird.PerformQuack(); mortyBird.Swim(); }
static void Main(string[] args) { // 这种策略模式,必须知道有什么功能,否则出现错误 // 行为都是一样的,虽然行为是组合的,但感觉就不是那么会事 Duck woodduck = new WoodDuck(); woodduck.Display(); //woodduck.FlyBehavior.Fly(); //woodduck.Quackbehavior.Quack(); woodduck.SweepingBehavior.Swimming(); RubberDuck rubberDuck = new RubberDuck(); rubberDuck.Display(); rubberDuck.SweepingBehavior.Swimming(); Console.ReadLine(); }
static void Main(string[] args) { Duck duckMallard = new MallardDuck("José"); Duck duckRedhead = new RedheadDuck("Jaum"); Duck rubberDuck = new RubberDuck("Pedro"); duckMallard.Display(); duckMallard.Quack(); duckMallard.Swin(); duckMallard.Fly(); duckRedhead.Display(); duckRedhead.Quack(); duckRedhead.Swin(); duckRedhead.Fly(); rubberDuck.Display(); rubberDuck.Quack(); rubberDuck.Swin(); rubberDuck.Fly(); }
public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { DbInitializer.Initialize(services); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred seeding the DB."); } } FlyWithWings fly = new FlyWithWings(); FlyNoWay noFly = new FlyNoWay(); MallardDuck md = new MallardDuck(fly); RedheadDuck red = new RedheadDuck(fly); RubberDuck rubberDuck = new RubberDuck(noFly); md.Display(); md.Fly(); red.Display(); red.Fly(); rubberDuck.Display(); rubberDuck.Fly(); host.Run(); }
private static void RunDucks() { Duck duck = null; bool exitApplication = false; do { Console.WriteLine("What do you want to see?\n1)DecoyDuck\n2)MallardDuck\n3)RubberDuck\nanykey to exit"); Console.WriteLine(string.Empty); var response = Console.ReadLine(); switch (response) { case "1": duck = new DecoyDuck(); break; case "2": duck = new MallardDuck(); break; case "3": duck = new RubberDuck(); break; default: exitApplication = true; break; } if (!exitApplication) { duck.Display(); duck.PerformFly(); duck.PerformQuack(); } Console.WriteLine(string.Empty); }while(!exitApplication); }
public static void Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { //var context = services.GetRequiredService<AnimalCrossingContext>(); DbInitialiser.Initialize(services); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occurred while seeding the database."); } } FlyWithWing fly = new FlyWithWing(); FlyNoWay noFly = new FlyNoWay(); MallardDuck md = new MallardDuck(fly); RedHeadDuck red = new RedHeadDuck(fly); RubberDuck rd = new RubberDuck(noFly); md.Display(); md.Fly(); red.Display(); red.Fly(); rd.Display(); rd.Fly(); host.Run(); }
static void Main(string[] args) { Console.WriteLine("##### 例子1 #####"); // 无折扣. DiscountContext c1 = new DiscountContext(new NoDiscountStrategy()); // 每本1元. DiscountContext c2 = new DiscountContext(new FlatRateStrategy() { OneCopyDiscount = 1 }); // 总金额 10% DiscountContext c3 = new DiscountContext(new PercentageStrategy() { Percent = 0.1M }); Console.WriteLine(c1.GetBookDiscount(100, 10)); Console.WriteLine(c2.GetBookDiscount(100, 10)); Console.WriteLine(c3.GetBookDiscount(100, 10)); Console.WriteLine("##### 例子2 #####"); MallardDuck mallardDuck = new MallardDuck(); RedheadDuck redheadDuck = new RedheadDuck(); RubberDuck rubberDuck = new RubberDuck(); Console.WriteLine(mallardDuck.Display() + " # " + mallardDuck.PerformFly().ToString() + " # " + mallardDuck.PerformQuack().ToString()); Console.WriteLine(redheadDuck.Display() + " # " + redheadDuck.PerformFly().ToString() + " # " + redheadDuck.PerformQuack().ToString()); Console.WriteLine(rubberDuck.Display() + " # " + rubberDuck.PerformFly().ToString() + " # " + rubberDuck.PerformQuack().ToString()); Console.ReadLine(); }
static void Main(string[] args) { TestVirtual testVirtual = new TestVirtual(); Console.WriteLine(testVirtual.resultA); //using method from overrride Console.WriteLine(testVirtual.resultB); //using method from base class Console.WriteLine(testVirtual.add(1, 2)); //using method from overrride Console.WriteLine(testVirtual.substract(9, 1)); //using method from base class Console.WriteLine(); //====================================================================================== SealMethod sealMethod = new SealMethod(); Console.WriteLine(sealMethod.add(1, 1)); Console.WriteLine(sealMethod.substract(2, 2)); Console.WriteLine(sealMethod.multipy(2, 2)); Console.WriteLine(); //====================================================================================== ProtectBase protectBase = new ProtectBase(); TestProtected testProtected = new TestProtected(); // below will have complier error as "add" method can only be used inside TestProtected //Console.WriteLine(TestProtected.add(4, 5)); Console.WriteLine(); //====================================================================================== // below will have compier error - abstract can't be instantiate //AbstractBase ab = new AbstractBase(); TestAbstract testAb = new TestAbstract(); Console.WriteLine(testAb.add(3, 8)); Console.WriteLine(); //====================================================================================== Console.WriteLine("---- test order system ----"); Order order = new Order { Id = 1, FirstName = "Tan", Email = "*****@*****.**", Price = 10.50M }; OrderingFactory factory = new OrderingFactory(); IOrderProcess orderA = factory.GetOrderSupplier("A"); orderA.MakeOrder(order); Console.WriteLine(""); IOrderProcess orderB = factory.GetOrderSupplier("B"); orderB.MakeOrder(order); Console.WriteLine(""); Console.WriteLine("++++++++++++++++++++++++++++++++++++++++++++++++++++"); Console.WriteLine(""); Console.WriteLine(Multi10000(1, 1)); Console.WriteLine(); //====================================================================================== IStore store = new Document(); ICompress compress = new Document(); store.Read(); store.Write(); compress.Compress(); compress.Decompress(); using (SimpleClass simple = new SimpleClass()) { Console.WriteLine(simple.returnA()); } Console.WriteLine(); //====================================================================================== Duck d1 = new DecoyDuck(); d1.Display(); d1.PerformFly(); d1.PerformQuack(); Duck d2 = new RubberDuck(); d2.Display(); d2.PerformFly(); d2.PerformQuack(); Console.WriteLine(); //====================================================================================== /* * WeatherData weatherData = new WeatherData(); * * CurrentConditionsDisplay currDisplay = new CurrentConditionsDisplay(weatherData); * ForecastDisplay foreDisplay = new ForecastDisplay(weatherData); * * weatherData.setMeasurements(80, 65, 30.4f); */ Console.WriteLine(); //====================================================================================== WeatherTracker provider = new WeatherTracker(); CurrentConditionsDisplay currDisplay = new CurrentConditionsDisplay(provider); ForecastDisplay foreDisplay = new ForecastDisplay(provider); provider.UpdateWeather(new WeatherData(80, 65, 30.4f)); Console.WriteLine(); //====================================================================================== BeverageBase beverage = new Decaf(); Console.WriteLine(beverage.Description + " $" + beverage.cost()); BeverageBase beverage2 = new DarkRoast(); beverage2 = new Milk(beverage2); beverage2 = new Mocha(beverage2); Console.WriteLine(beverage2.Description + " $" + beverage2.cost()); Console.WriteLine(); //====================================================================================== Console.WriteLine(Singleton.Instant.getTest()); Console.WriteLine(Singleton.Instant.getTest()); Console.WriteLine(Singleton.Instant.getTest()); Console.WriteLine(); //====================================================================================== Booking booking = new Booking { BookingId = 1, SupplierCode = "GTA", FirstName = "Tan", LastName = "Tang", TotalAmount = (decimal)299.99 }; ProcessBooking bookingProcess = new ProcessBooking(booking); bookingProcess.Initial(); Console.WriteLine(" Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status); bookingProcess.PreAuthorisation(); Console.WriteLine(" Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status); bookingProcess.MakeBooking(); Console.WriteLine(" Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status); bookingProcess.MakePayment(); Console.WriteLine(" Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status); bookingProcess.FinaliseBooking(); Console.WriteLine(" Booking State = {0}, Status = {1}", booking.State.ToString(), booking.Status); Console.Read(); }