对于新闻编辑室系统,我有一个包含单个新闻故事的课程.在这个类中是一个私有变量,它包含一个通用的图像类列表.作为单个故事的想法可以包含多个图像.
问题是我应该将List变量设为公共,以便我可以通过直接寻址List来添加/删除图像
public class News
{
private _images List<Images>();
public Images
{
get { return _images; }
set { _images = value }
}
}
Run Code Online (Sandbox Code Playgroud)
要么
我应该将List变量设为私有,然后创建操作它的方法:
public class News
{
private _images List<Images>();
public void AddImage( Image image )
public Image GetImage( int imageId )
public int GetImageCount()
public void DeleteImage( int imageId )
}
Run Code Online (Sandbox Code Playgroud)
我的蜘蛛意识告诉我要做的更晚,因为它更抽象的东西.但另一方面,它创造了更多的代码.
通过公开List,您可以公开实现细节.它会在短期内变得更容易,但如果您决定将列表更改为其他容器(或许您需要使用字典进行查找或其他操作),您将很难以后使用.
我会封装它,因为它将使类型在未来更容易维护和增强.
我将列表的只读视图作为IList或IEnumerable,以及添加和删除元素的方法.像这样:
public class News
{
private _images List<Images>();
public IList<Image> Images
{
get {return _images.AsReadOnly(); }
}
public void AddImage(Image image)
{
_images.Add(image);
// Do other stuff...
}
public void DeleteImage(Image image)
{
_images.Remove(image);
// Do other stuff...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1266 次 |
| 最近记录: |