Ale
2006-03-15 15:59:04 UTC
Pessoal, copiei este programa de um texto do fowler, ele estava em Java e
estou com dificuldades na classe program.. Como eu faria para utilizar toda
esta estrutura no C#. Em java eu fiz e funcionou perfeitamente.. Obrigado
using System;
using System.Collections;
using System.Text;
namespace RolerPattern
{
class Person
{
public void addRole(PersonRole value)
{
_roles.Add(value);
}
public PersonRole roleOf(String roleName)
{
foreach (Object obj in _roles)
{
PersonRole each = (PersonRole)obj;
if (each.hasType(roleName)) return each;
}
return null;
}
private ArrayList _roles = new ArrayList();
}
public class PersonRole
{
virtual public Boolean hasType(String value)
{
return false;
}
public class Salesman : PersonRole
{
override public Boolean hasType(String value)
{
if (value.Equals("SalesMan")) return true;
if (value.Equals("JobRole")) return true;
else return base.hasType(value);
}
public void numberOfSales(int value)
{
_numberOfSales = value;
}
public int numberOfSales()
{
return _numberOfSales;
}
private int _numberOfSales = 0;
}
class Program
{
static void Main(string[] args)
{
//To set a salesman’s sales we do the following
Person subject
Salesman subjectSalesman =
(Salesman)subject.roleOf("Salesman");
subjectSalesman.numberOfSales(50);
}
}
}
}
estou com dificuldades na classe program.. Como eu faria para utilizar toda
esta estrutura no C#. Em java eu fiz e funcionou perfeitamente.. Obrigado
using System;
using System.Collections;
using System.Text;
namespace RolerPattern
{
class Person
{
public void addRole(PersonRole value)
{
_roles.Add(value);
}
public PersonRole roleOf(String roleName)
{
foreach (Object obj in _roles)
{
PersonRole each = (PersonRole)obj;
if (each.hasType(roleName)) return each;
}
return null;
}
private ArrayList _roles = new ArrayList();
}
public class PersonRole
{
virtual public Boolean hasType(String value)
{
return false;
}
public class Salesman : PersonRole
{
override public Boolean hasType(String value)
{
if (value.Equals("SalesMan")) return true;
if (value.Equals("JobRole")) return true;
else return base.hasType(value);
}
public void numberOfSales(int value)
{
_numberOfSales = value;
}
public int numberOfSales()
{
return _numberOfSales;
}
private int _numberOfSales = 0;
}
class Program
{
static void Main(string[] args)
{
//To set a salesman’s sales we do the following
Person subject
Salesman subjectSalesman =
(Salesman)subject.roleOf("Salesman");
subjectSalesman.numberOfSales(50);
}
}
}
}