前言
组合模型是将对象组合成树形结构以表示“整体-部分”的层次结构,使客户终端代码更加简洁和灵活。
代码
//目录抽象类
public abstract class Directory
{
    protected string _name;
    public Directory(string name)
    {
        _name = name;
    }
    public abstract void Show();
}
//子目录
public class SubDirectory : Directory
{
    public SubDirectory(string name) : base(name)
    {
    }
    public override void Show()
    {
        Console.WriteLine($"sub directory show : {_name}");
    }
}
//父目录
public class ParentDirectory : Directory
{
    private List<Directory> children;
    public ParentDirectory(string name) : base(name)
    {
        children = new List<Directory>();
    }
    public void Add(Directory catalogue)
    {
        children.Add(catalogue);
    }
    public void Remove(Directory catalogue)
    {
        children.Remove(catalogue);
    }
    public override void Show()
    {
        Console.WriteLine($"Parent directory show : {_name}");
        foreach (var item in children)
        {
            item.Show();
        }
    }
}
 /*
  * 结构型模式:Structural Pattern
  * 组合模式: Component Pattern
  * 组合模式是将对象组合成树形结构以表示“整体-部分”的层次结构使客户终端代码更加简洁和灵活。
  */
 internal class Program
 {
     static void Main(string[] args)
     {
         //创建父目录
         ParentDirectory rootDirectory =new ParentDirectory("root");
         ParentDirectory parentDirectory1 = new ParentDirectory("parent1");
         ParentDirectory parentDirectory2 = new ParentDirectory("parent2");
         //创建子目录
         SubDirectory subDirectory1 = new SubDirectory("sub1");
         SubDirectory subDirectory2 = new SubDirectory("sub2");
         SubDirectory subDirectory3 = new SubDirectory("sub3");
         //添加目录到...
         rootDirectory.Add(parentDirectory1);
         rootDirectory.Add(parentDirectory2);
         parentDirectory1.Add(subDirectory1);
         parentDirectory2.Add(subDirectory2);
         parentDirectory2.Add(subDirectory3);
         //查看目录
         rootDirectory.Show();
         Console.ReadLine();
     }
 }
运行结果






![vue2项目启用tailwindcss - 开启class=“w-[190px] mr-[20px]“ - 修复tailwindcss无效的问题](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83A)













