对于新闻编辑室系统,我有一个包含单个新闻故事的类。此类内部是一个私有(private)变量,其中包含图像类的通用列表。单个故事的想法可以包含多个图像。
问题是我是否应该公开 List 变量,以便我可以通过直接寻址 List 添加/删除图像
public class News
{
private _images List<Images>();
public Images
{
get { return _images; }
set { _images = value }
}
}
或
我是否应该将 List 变量设为私有(private),然后创建操作它的方法:
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 )
}
我的蜘蛛感觉告诉我以后再做,因为它会抽象更多的东西。但另一方面,它会创建更多代码。
最佳答案
通过公开列表,您公开了实现细节。从短期来看,这会让事情变得更容易,但如果你决定这样做,你以后会遇到困难。将列表更改为其他容器(也许您需要一个字典来查找或其他东西)。
我会封装它,因为它会让类型在未来更容易维护和增强。
关于c# - 类设计: Access a List<T> directly or through methods?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1673382/