我尝试模拟类似于以下情况的类:
public class Car
{
private List<Gratis> _gratises=new List<Gratis>();
public List<Gratis> Gratises
{
get { return _gratises; }
set { _gratises= value; }
}
public class Gratis
{
public string Name {get;set;}
public int ID {get;set;}
}
在一个地方用户管理gratises列表。他可以添加,删除或编辑gratises。
在第二个模块中,用户可以管理汽车:
他可以免费添加或删除汽车。
我的模特好吗?
如果是,如何实现这个?
我有datagridview和:
从数据库中获取免费列表,然后获取免费汽车列表?
或者可能添加IsChecked字段?
Sql Server 2005.asmx和WinForms
答案 0 :(得分:2)
请看M.Fowler重构方法Encapsulate Collection
另请注意,在get属性中返回只读集合:
public List<Gratis> Gratises
{ get {return _gratises.AsReadOnly(); } }
答案 1 :(得分:1)
看起来很不错,2个注意事项:
为什么_gratises
公开?它是
它可以通过Gratises
访问
应该是私人的
你介意有人替换了
“gratises”列表完整?如果
你这样做,我会删除二传手
并添加AddGratis(Gratis)
和
代理的RemoveGratis(Gratis)
方法
基础清单。