Oop 书店模式

Oop 书店模式,oop,uml,Oop,Uml,我正在制定一个解决方案。我想为下面的结构建模 Collection 1 Category 1 Sub Category 1.1 Book 1 Book 2 Book 3 Sub Category 1.2 Book 1 Category 2 Sub Category 2.1

我正在制定一个解决方案。我想为下面的结构建模

Collection 1
       Category 1
        Sub Category 1.1
                  Book 1
                  Book 2
                  Book 3

        Sub Category 1.2
                 Book 1
       Category 2
        Sub Category 2.1
                Book 2
        Sub Category 2.2
                Book 3
        Sub Category 2.3
                Book 4
       Category 3
        Sub Category 3.1
                Book 4
)

什么是对其建模的最佳方式,以便可以在两个方向上进行遍历

1) 从收藏到书籍(即,如果选择了收藏,则查找该收藏下的所有类别、子类别和书籍。)


2) 从一本书到另一本书(即,如果选择了书,应该能够找到它所属的子类别、类别和收藏)

听起来您需要的是一个线程树。或者,只需使用几乎任何半合理的关系数据库。

以下是应用程序的基本模型

公共课堂教材
{
公共类别ParentCategory{get;set;}
公共图书(){}
}
公共类类别
{
公共类别集子类别{get;set;}
公共书店书籍{get;set;}
公共类别()
{
子类别=新类别集();
图书=新图书集();
}
}
公共类集合
{
公共类别集类别{get;set;}
公众收藏(){
类别=新类别集();
}
}
公共类图书集:System.Collections.ObjectModel.Collection
{
公共图书集(){}
}
公共类CategorySet:System.Collections.ObjectModel.Collection
{
公共类别集(){}
}
公共类集合集:System.Collections.ObjectModel.Collection
{
公共集合集(){}
}
public class Book
{
    public Category ParentCategory { get; set; }
    public Book() { }
}

public class Category
{
    public CategorySet SubCategories { get; set; }
    public BookSet Books { get; set; }

    public Category()
    {
        SubCategories = new CategorySet();
        Books = new BookSet();
    }
}

public class Collection
{
    public CategorySet Categories { get; set; }
    public Collection() {
        Categories = new CategorySet();
    }
}

public class BookSet : System.Collections.ObjectModel.Collection<Book>
{
    public BookSet() { }
}

public class CategorySet : System.Collections.ObjectModel.Collection<Category>
{
    public CategorySet() { }
}

public class CollectionSet : System.Collections.ObjectModel.Collection<Collection>
{
    public CollectionSet() { }
}