优秀的架构设计
- 架构分层,高层策略都集中在workbench,一目了然
- 逻辑集中在workbench.ts中,一眼看去非常清晰
- 看startup函数,渲染,初始service,状态restore高层策略集中
- 如果是我,恢复过去状态,我可能分散写在sidebar和editor中了
- restore的逻辑写在了workbeanch中,而非各组件中,这样就非常有顺序了
- 组件分层,职责单一,关注点分离
- 非常多层次,各层有各层的职责
- 左侧的渲染树,explorerView负责粘合,workbenchTree负责渲染树,TreeModel,Tree
- 抽象复用,封装变化实现扩展
- 很多的基础类复用,即提取了共性,又在基础上扩展出不同的类
- 如Tree,在左侧的文件树,git树都有应用,通过可变的controller和内部render,可扩展不同的类型。
- Tree基础上,通过继承,workbenchTree,FileIconThemeTree。
- 强大service管理
- restorePart都是靠各个service去调度各个区块