c# - 类设计: Access a List<T> directly or through methods?

标签 c# .net class oop

对于新闻编辑室系统,我有一个包含单个新闻故事的类。此类内部是一个私有(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/

相关文章:

c# - 动态 LINQ 表达式中的空引用异常

javascript - Firefox 在 .NET 中提前记住文本框值

java - 如何将包中的类导入到另一个包中?

c# - 事件冒泡和 RoutedEventArgs Source 属性

FNV哈希的C#实现

c# - 使用现有控件向窗体添加选项卡控件

.net - CLR(公共(public)语言运行时)的哪一部分负责创建对象?

c# - 修复小数点后的数字计数

php - 如何避免无法为两个具有相同名称的不同类重新声明类

php - 为什么静态调用这个方法有效?