Marvin: MoneyTransfer.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Marvin.Examples
{
public class MoneyTransfer
{
public MoneyTransfer(Account source,Account destination,decimal amount){
Source = source;
Destination = destination;
Amount = amount;
}
role Source{
void Withdraw(decimal amount){
Source.DecreaseBalance(amount);
}
void Transfer(decimal amount){
Console.WriteLine("Source balance is: " + Source.Balance);
Console.WriteLine("Destination balance is: " + Destination.Balance);
Destination.Deposit(amount);
Source.Withdraw(amount);
Console.WriteLine("Source balance is now: " + Source.Balance);
Console.WriteLine("Destination balance is now: " + Destination.Balance);
}
}
role Destination
{
void Deposit(decimal amount){
Destination.IncreaseBalance(amount);
}
}
role Amount{}
public void Trans(){
Source.Transfer(Amount);
}
}
}