我在这个网站上做了一些搜索以避免重复,但是大多数问题都是关于接口和抽象类之间的抽象比较。
我的问题更多是针对我的具体情况,尤其是我的同事和我,我们不同意相同的方法。
我有 3 节课
- 节点(文件夹结构中的抽象节点)
- 文件夹(包含子文件夹和文件)
- 文件
我们使用复合模式来获取每个用户/组的所有文件夹及其权限
类Node
,应该是接口还是抽象类?
Folder
并File
从节点继承。
在我看来,我认为Node
应该是一个抽象的,因为File
不应该有所有的方法,Folder
例如AddFolder(Node node)
我的同事说最好使用接口进行更好的编码。
编辑:我重写了我的节点如下:
public abstract class Node
{
public string Name { get; set; }
public string FullName { get; set; }
public Node Parent { get; set; }
public List<PermissionEntry> Permissions { get; set; }
protected Node(string fullName)
{
FullName = fullName;
Permissions = new List<PermissionEntry>();
}
public void AssignPermission()
{
// some Codes
}
}