Tree 아키텍쳐 고민

public class Root : base
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set { SetProperty(ref _name, value); }
    }
    private ObservableCollection<Leaf> _child;
    public ObservableCollection<Leaf> Child
    {
        get { return _child; }
        set { SetProperty(ref _child, value); }
    }
}

이런 Root 클래스가 있고, 아래에 child가 존재할 때, child에 대한 CRUD를 어디서 표현해야하는게 맞는건지 고민 입니다.

Root의 Crud는

public class Service : serviceBase
{
    static List<Root> _root;
    CRUD functions...
}

이렇게 서비스 클래스를 만들어서 따로 관리를 하고 있습니다. 근데 이제 Leaf class에 대한 CRUD가 필요 한데 이 CRUD 역할을 하는 class를 service로 따로 만들어서 관리해야할지 Root class에서 만들어서 관리해야 할지가 고민 입니다.

Service를 따로 만들어서 관리하면 기존의 구조가 유지가 되는 느낌인데… 이걸 service로 만들면 tree에서 binding을 할 때 처리를 한번더 해줘야하는 번거로움이 생기고… 고민입니다.

좋아요 2

성질에 따라 결정하면 어떨까요?

저 같은 경우는 Root및 그 하위 Leaf가 트리 구조의 하나의 모델 및 서비스 성질이 있다면 하나의 Service에 둡니다.

만약 소스 코드 양이 많아져 파일의 구분이 필요하다면,
partial을 이용해,

Service.cs
Servics.Leaf.cs

이런 식으로 파일은 구분해서 하기도 합니다.

좋아요 4