Added tutorial 6

This commit is contained in:
2021-09-16 17:55:28 +12:00
parent 544ae9c070
commit e9e107e3d3
12 changed files with 202 additions and 95 deletions
+3 -3
View File
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
namespace DuckModel
{
class DecoyDuck : DuckBehaviour
public class DecoyDuck : DuckBehaviour
{
public override void Display()
{
Console.WriteLine("drew a decoy duck");
Console.WriteLine("I am a decoy duck");
}
DecoyDuck()
public DecoyDuck()
{
base.SetFlyBehaviour(new NoFly());
base.SetQuackBehaviour(new MuteQuack());
+16 -16
View File
@@ -8,12 +8,12 @@ namespace DuckModel
{
public interface IFlyBehaviour
{
void Fly();
string Fly();
}
public interface IQuackBehaviour
{
void Quack();
string Quack();
}
public abstract class DuckBehaviour
{
@@ -27,14 +27,14 @@ namespace DuckModel
public abstract void Display();
void PerformQuack()
public string PerformQuack()
{
_quackBehaviour.Quack();
return _quackBehaviour.Quack();
}
void PerformFly()
public string PerformFly()
{
_flyBehaviour.Fly();
return _flyBehaviour.Fly();
}
protected void SetFlyBehaviour(IFlyBehaviour flyBehaviour)
@@ -50,41 +50,41 @@ namespace DuckModel
class Quack : IQuackBehaviour
{
void IQuackBehaviour.Quack()
string IQuackBehaviour.Quack()
{
Console.WriteLine("The duck quacks");
return "The duck quacks";
}
}
class Squeak : IQuackBehaviour
{
void IQuackBehaviour.Quack()
string IQuackBehaviour.Quack()
{
Console.WriteLine("The duck squeaks");
return "The duck squeaks";
}
}
class MuteQuack : IQuackBehaviour
{
void IQuackBehaviour.Quack()
string IQuackBehaviour.Quack()
{
Console.WriteLine("The duck makes no sound");
return "The duck makes no sound";
}
}
class FlyWithWings : IFlyBehaviour
{
public void Fly()
public string Fly()
{
Console.WriteLine("The duck flies away");
return "I can fly with my wings";
}
}
class NoFly : IFlyBehaviour
{
public void Fly()
public string Fly()
{
Console.WriteLine("The duck cannot fly");
return "I cannot fly";
}
}
}
+1
View File
@@ -41,6 +41,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="DuckTypes.cs" />
<Compile Include="DuckBehaviours.cs" />
<Compile Include="DecoyDuck.cs" />
<Compile Include="RubberDucky.cs" />
+17
View File
@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DuckModel
{
public enum DuckTypes
{
Mallard,
Redhead,
Rubber,
Decoy,
Default
}
}
+3 -3
View File
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
namespace DuckModel
{
class MallardDuck : DuckBehaviour
public class MallardDuck : DuckBehaviour
{
public override void Display()
{
Console.WriteLine("drew a Mallard duck");
Console.WriteLine("I am a Mallard duck");
}
MallardDuck()
public MallardDuck()
{
base.SetFlyBehaviour(new FlyWithWings());
base.SetQuackBehaviour(new Quack());
+3 -3
View File
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
namespace DuckModel
{
class RedheadDuck : DuckBehaviour
public class RedheadDuck : DuckBehaviour
{
public override void Display()
{
Console.WriteLine("drew a Redhead duck");
Console.WriteLine("I am a Redhead duck");
}
RedheadDuck()
public RedheadDuck()
{
base.SetFlyBehaviour(new FlyWithWings());
base.SetQuackBehaviour(new Quack());
+3 -3
View File
@@ -6,14 +6,14 @@ using System.Threading.Tasks;
namespace DuckModel
{
class RubberDucky : DuckBehaviour
public class RubberDucky : DuckBehaviour
{
public override void Display()
{
Console.WriteLine("drew a Rubber ducky");
Console.WriteLine("I am a Rubber ducky");
}
RubberDucky()
public RubberDucky()
{
base.SetFlyBehaviour(new NoFly());
base.SetQuackBehaviour(new Squeak());