173 lines
3.2 KiB
C#
173 lines
3.2 KiB
C#
namespace DependencyInjections
|
|
{
|
|
public interface IPayment
|
|
{
|
|
void ProcessPayment(decimal amount);
|
|
}
|
|
|
|
public class CreditCardPayment : IPayment
|
|
{
|
|
public void ProcessPayment(decimal amount)
|
|
{
|
|
Console.WriteLine($"Processing credit card payment for {amount} kr.");
|
|
}
|
|
}
|
|
|
|
public class PayPalPayment : IPayment
|
|
{
|
|
public void ProcessPayment(decimal amount)
|
|
{
|
|
Console.WriteLine($"Processing PayPal payment of {amount} kr.");
|
|
}
|
|
}
|
|
|
|
public interface IPrintable
|
|
{
|
|
void Print();
|
|
}
|
|
|
|
public class PrintInvoice : IPrintable
|
|
{
|
|
public void Print()
|
|
{
|
|
Console.WriteLine($@"
|
|
====== INVOICE ======
|
|
|
|
1 stk båd 1299 kr.
|
|
|
|
Total 1299 kr.
|
|
");
|
|
}
|
|
}
|
|
|
|
public class PrintReport : IPrintable
|
|
{
|
|
public void Print()
|
|
{
|
|
Console.WriteLine("Report printing...");
|
|
}
|
|
}
|
|
|
|
public class PrintLetter : IPrintable
|
|
{
|
|
public void Print()
|
|
{
|
|
Console.WriteLine("Printing letter...");
|
|
}
|
|
}
|
|
|
|
public interface IDriveable
|
|
{
|
|
void Start();
|
|
void Stop();
|
|
}
|
|
|
|
public class Vehicle
|
|
{
|
|
public string brand { get; set; }
|
|
}
|
|
|
|
public class Car : Vehicle, IDriveable
|
|
{
|
|
public bool started = false;
|
|
|
|
public Car(string brand)
|
|
{
|
|
this.brand = brand;
|
|
}
|
|
|
|
public void Start()
|
|
{
|
|
this.started = true;
|
|
Console.WriteLine($"Starting {this.brand}");
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
this.started = false;
|
|
Console.WriteLine($"Stopping {this.brand}");
|
|
}
|
|
}
|
|
|
|
public class Motorcycle : Vehicle, IDriveable
|
|
{
|
|
public bool started = false;
|
|
|
|
public Motorcycle(string brand)
|
|
{
|
|
this.brand = brand;
|
|
}
|
|
|
|
public void Start()
|
|
{
|
|
this.started = true;
|
|
Console.WriteLine($"Starting {this.brand}");
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
this.started = false;
|
|
Console.WriteLine($"Stopping {this.brand}");
|
|
}
|
|
}
|
|
|
|
public interface IMakeSound
|
|
{
|
|
void MakeSound();
|
|
}
|
|
|
|
public class Dog : IMakeSound
|
|
{
|
|
public void MakeSound()
|
|
{
|
|
Console.WriteLine("Woof");
|
|
}
|
|
}
|
|
|
|
public class Cat : IMakeSound
|
|
{
|
|
public void MakeSound()
|
|
{
|
|
Console.WriteLine("Meow");
|
|
}
|
|
}
|
|
|
|
public class Cow : IMakeSound
|
|
{
|
|
public void MakeSound()
|
|
{
|
|
Console.WriteLine("Moo");
|
|
}
|
|
}
|
|
|
|
public interface IWeapon
|
|
{
|
|
int Attack();
|
|
}
|
|
|
|
public class Sword : IWeapon
|
|
{
|
|
public int Attack()
|
|
{
|
|
return 10;
|
|
}
|
|
}
|
|
|
|
public class Bow : IWeapon
|
|
{
|
|
public int Attack()
|
|
{
|
|
return new Random().Next(5, 16);
|
|
}
|
|
}
|
|
|
|
public class Staff : IWeapon
|
|
{
|
|
public int MagicPower { get; set; } = 10;
|
|
|
|
public int Attack()
|
|
{
|
|
return MagicPower;
|
|
}
|
|
}
|
|
} |