Discussion:
Como fazer isso funcionar.. Role Pattern
(too old to reply)
Ale
2006-03-15 15:59:04 UTC
Permalink
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);
}
}
}
}
Walter Ritzel
2006-03-23 13:40:25 UTC
Permalink
O method main dessa class program pode ser:
- o metodo main de uma console application
- o page load de uma aplicação web
- o load de um form windows.

Era isso,
--
-------------------------------------------
Walter Ritzel Paixão Côrtes - MCP.NET
Post by Ale
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);
}
}
}
}
Rodrigo da Costa
2006-03-24 14:15:02 UTC
Permalink
Embora as duas melhores formas de se desenvolver a questão das regras de
acesso (se é isso mesmo que pretende fazer) é utilizando os Provide Patterns:
Membership e Role Provider ou ainda utilizando a interface IPrincipal..
Post by Ale
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);
}
}
}
}
Loading...