重複を避けるためにこの Web サイトでいくつかの検索を行いましたが、ほとんどの質問はインターフェイスと抽象クラスの抽象比較に関するものでした。
私の質問は、私の特定の状況、特に私の同僚に関するものであり、同じアプローチについては同意しません。
私は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
}
}