Wil*_*lsu 3 c# oop software-design
我目前正在编写一个应用程序,它建立与某种服务的连接,以一些DataTable对象的形式获取数据,然后应该向用户显示它.
为了存储数据,我得到我做了一个叫做类DataStorage具有List<DataTable>.其他类需要能够编辑此List,例如添加所需的对象或在用户发现不需要时删除它们.如果我需要一组全新的数据,我还必须能够清除它.
我可以DataStorage为此提供方法,但由于List<T>已经提供了这些,我认为没有必要像这样封装它.所以我这样做是readonly为了确保没有人试图分配一个新对象 - 甚至更糟糕的是null- 并制作了访问修饰符public.
这种设计是否可以接受,或者我应该始终保护字段免受直接访问,无论如何?
一般来说,你应该总是采用最通用的类型来减少任何紧耦合,并且只提供你实际需要访问的那些成员.在某些情况下说过这个,最好使用一个ICollection提供对基本方法的访问,例如Add,Remove和Clear.
然而,制作集合readonly或甚至更好的Get-only属性可能是一个好主意,没有什么可以说对此.