创建型 建造者模式

简介: 设计模式

建造者模式的使用场景:

  1. 当被创建的对象内部成员之间相互依赖时,不能单纯的直接new出来;
  2. 当初始化参数比较多时,直接new出来,构造方法内的参数过多,代码不够简洁,容易出错;
  3. 直接new出来对象,再采用set方法为成员赋值时,可能会产生在所有需要set的属性被设置前,该对象处于无效状态,而有时候我们的需求是对象创建出来即生效;
    1. 如果需要一次性创建相互有依赖关系的多个对象时,就应该使用建造者模式。

工厂模式跟建造者模式的区别:
工厂方法是创建同一种类针对的很多,而 Builder 模式创建的是一个对象,只针对一个。他们两个侧重面不同。
工厂模式是用来创建不同但是相关类型的对象(继承同一父类或者接口的一组子类),由给定的参数来决定创建哪种类型的对象。建造者模式是用来创建一种类型的复杂对象,通过设置不同的可选参数,“定制化”地创建不同的对象。
网上有一个经典的例子很好地解释了两者的区别。顾客走进一家餐馆点餐,我们利用工厂模式,根据用户不同的选择,来制作不同的食物,比如披萨、汉堡、沙拉。对于披萨来说,用户又有各种配料可以定制,比如奶酪、西红柿、起司,我们通过建造者模式根据用户选择的不同配料来制作披萨。

/**

  • 建造者模式
    */
    public class ThreadPoolConfig {
    private String name;
    private int coreThreadNum;
    private int maxThreadNum;
    private long keepAlive;

    private ThreadPoolConfig(Builder builder){

     this.name = builder.name;
     this.coreThreadNum = builder.coreThreadNum;
     this.maxThreadNum = builder.maxThreadNum;
     this.keepAlive = builder.keepAlive;
    

    }

    public static class Builder{

     private String name;
     private int coreThreadNum;
     private int maxThreadNum;
     private long keepAlive;
    
     public Builder setName(String name){
         this.name = name;
         return this;
     }
    
     public Builder setCoreThreadNum(int coreNum){
         this.coreThreadNum = coreNum;
         return this;
     }
    
     public Builder setMaxThreadNum(int maxNum){
         this.maxThreadNum = maxNum;
         return this;
     }
    
     public Builder setAlive(Long keepAlive){
         this.keepAlive = keepAlive;
         return this;
     }
    
     public ThreadPoolConfig build(){
         if(TextUtils.isEmpty(name)){
             throw new IllegalArgumentException("name not empty");
         }
         if(coreThreadNum < 0){
             throw new IllegalArgumentException("num not below 0");
         }
         return new ThreadPoolConfig(this);
     }
    

    }

}

相关文章
|
3天前
|
人工智能 JSON 安全
|
3天前
|
云安全 人工智能 安全
|
3天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max-Preview深度全解析:2.4万亿参数旗舰MoE模型+Token Plan限时优惠完整落地指南
2026年7月,全新旗舰级混合专家大模型Qwen3.8-Max-Preview正式开放抢先体验,作为通义千问Qwen3系列规格最高、综合推理能力顶尖的新一代模型,该模型总参数量达到2.4万亿(2.4T),是当前线上可调用的原生多模态旗舰模型,综合推理水准对标海外顶级Fable 5模型,在复杂工程开发、长文档深度分析、多步骤智能体自治、跨境多语言创作、海量数据挖掘五大高难度业务场景实现跨越式性能提升。
709 0
|
3天前
|
人工智能 自然语言处理 数据挖掘
最新版通义千问(Qwen3.8-Max-Preview)功能介绍
2026年,通义千问正式推出全新旗舰级大模型 **Qwen3.8-Max-Preview 预览版**,作为首款突破万亿参数规格的新一代基座模型,该模型总参数量达到**2.4万亿**,采用全新迭代的MoE混合专家架构,综合推理性能、长文本处理、多模态理解、复杂任务规划能力全面超越前代Qwen3.7-Max版本,整体实力跻身全球第一梯队,可对标海外顶级旗舰模型,是当前面向复杂工程开发、多智能体协同、超长文档解析、专业办公自动化场景的最优国产基座模型。
734 0
|
5天前
|
人工智能
Qwen3.8抢先体验!正式版即将发布并开源!
千问Qwen3.8即将开源,参数达2.4T,进化速度以“天”计,实力媲美Fable 5。预览版Qwen3.8-Max已上线阿里Token Plan等平台,限时优惠:日间Credits低至1折,夜间更优,个人/团队版月付仅35元起!
654 25
|
4天前
|
人工智能 测试技术 语音技术
Qwen-Audio-3.0-TTS 正式发布!AI 语音从 “能说话” 升级到 “会带情绪表达”
阿里云发布Qwen-Audio-3.0-TTS语音合成大模型,支持细粒度标签控制(如[gasp][angry])、freestyle自由风格、16种语言及20种方言,声学鲁棒性强。含Flash(首包延时300ms)和Plus(全球榜单冠军)双版本,已在百炼平台开放调用。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
594 1
|
4天前
|
人工智能 自然语言处理 数据挖掘
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
Qwen3.8-Max-Preview是通义千问Qwen3系列旗舰MoE大模型,参数达2.4万亿,综合推理能力居行业第一梯队。支持思考/快速双模式,擅长大模型五大高难场景。现于阿里云百炼Token Plan、Qoder及QoderWork上线体验,个人版低至39元/月。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
522 1
Qwen3.8-Max 预览版全解析:2.4 万亿参数旗舰模型,Token Plan 限时优惠指南
|
11天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
928 12

热门文章

最新文章