一个乐高就需要几千个零件 <!-- more --> ## 场景 1. 成员变量很多,比如一个资源池 ResourcePoolConfig 2. 有参构造的参数很多,入参顺序可能填错 3. 那用 set 一个个注入? 1. 用 set 可能会使对象在某个时刻处于无效状态,因为是逐步 set 的。(当然有的在乎这点,有的无所谓) 2. 用 set 会使每个属性的注入是相对独立的,而 builder 的 build 方法可以提供一个统一的整合时机,比如可以做一些校验工作 ![image.png#pic_center|650](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F05%2F12%2F00-36-40-34dbe56030337030081f2debc17bc723-20240512003639-0dabce.png) ![image.png#pic_center|1000](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F05%2F23%2F15-52-21-6bef004b0f4bb87cf7bf61832c233fd7-20240523155221-c96f19.png) ## 踩坑 ![image.png#pic_center|650](https://imagehosting4picgo.oss-cn-beijing.aliyuncs.com/imagehosting/fix-dir%2Fpicgo%2Fpicgo-clipboard-images%2F2024%2F06%2F18%2F23-01-22-5d0e4e63dbe28d7217c706b90f4db2ee-20240618230121-0905f3.png)