Cercando di essere un programmatore migliore
Ho un'applicazione che tiene traccia dei ruoli e delle autorizzazioni, ho avuto classi per ruolo e autorizzazione che erano solo oggetti valore.
class Role
{
int RoleID
string RoleName
}
class Permission
{
int PermissionID
string PermissionName
}
Se volessi ottenere le autorizzazioni per un ruolo, lo farei
List<Permission> permissions = PermissionDAL.GetPermissions(RoleID)
Ma per comodità (è un'applicazione desktop) ho dovuto spostare la raccolta dei permessi nella classe Role in modo che potessi fare solo
permissions = roleInstance.GetPermissions();
e la classe Role diventa
class Role
{
List<Permission> permissions = null;
int RoleID
string RoleName
public List<Permission> Permissions
{
get
{
if(permissions == null)
permissions = PermissionDAL.GetPermissions(this.RoleID);
return permissions;
}
}
}
Domanda 1 : la sfida: ecco lo scenario
Role r = getARole();
//for user to see
display(r.Permissions);
//user adding permission to role
RoleDAL.AddPermission(RoleID, PermissionID);
//display new permissions
display(r.Permissions);
//But no, data is not refreshed because of the null check.
//Do I need to call a new instance of this Role?
Domanda 2 : penso che questo violi Inversion of Control?
Domanda 3 : come faresti un IoC per List<Role>
, impostando le autorizzazioni per ogni ruolo nella raccolta, se dovessi utilizzare IoC.
Grazie