code: @Override
      public void sortComponents(List<Component> components) {
          //将组件集合之间的依赖关系以map的形式展现出来
          Map<Component, Set<Component>> dependencies = dependsMap(components);
          //清空待排序的components，用于做结果的容器
          components.clear();
          //基于依赖关系进行处理
          arrange(components, dependencies);
      }
docs: 基于依赖关系进行排序，最多被依赖的组件排在最前面，没有被依赖的排在最后面
  <pre>
  这个排序算法不能基于java的quick sort，默认快速排序，排到前面的，不会再和后面的继续比较
  
  基本的算法原理是：
  先为components集合构建一个相互之间的依赖关系，map结构
  
  </pre>
  @param components 被排序的组件