• 设计模式--建造者模式


    项目源代码

    应用场景

    当你需要创建一个对象,而这个对象的构建过程相对复杂,并且需要进行多个步骤来完成时,建造者模式可以派上用场。举个例子,假设你正在开发一个游戏,需要创建一个角色对象。这个角色对象有很多属性,比如名字、等级、装备、技能等等,而且每个属性可能又有自己的一系列初始化步骤。使用建造者模式,你可以将角色对象的构建过程拆分成多个简单的步骤,比如设置名字、设置等级、添加装备、学习技能等,然后根据需要组合这些步骤来创建不同类型的角色对象,使得构建过程更加灵活和可控。

    定义

    旨在通过将复杂对象的构建过程拆分成多个简单的步骤来创建对象
    出自ai

    非常简单的实现

    
    /*******************************************************************************
     * Package: com.song.boot.springstudy.design.builder
     * Type:    CatBuilder
     * Date:    2024-04-18 10:04
     *
     * Copyright (c) 2024 LTD All Rights Reserved.
     *
     * You may not use this file except in compliance with the License.
     *******************************************************************************/
    package com.song.boot.springstudy.design.builder;
    
    /**
     * 功能描述:
     *
     * @author Songxianyang
     * @date 2024-04-18 10:04
     */
    public class CatBuilder {
        private String name;
        private Integer age;
        private Long id;
    
        public CatBuilder nameBuild(String name) {
            this.name = name;
            return this;
        }
    
        public CatBuilder ageBuild(Integer age) {
            this.age = age;
            return this;
        }
    
        public CatBuilder idBuild(Long id) {
            this.id = id;
            return this;
        }
    
        public Cat build() {
            // 在构建返回对象的时候  提前校验
            if (id == null) {
                id=99L;
            }
            Cat cat = new Cat(name, age, id);
            return cat;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    使用

    public class Main {
        public static void main(String[] args) {
            Cat build = new CatBuilder().idBuild(111l).nameBuild("松下演员").ageBuild(12).build();
            System.out.println(build);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

  • 相关阅读:
    unity游戏入门1
    软件产品有必要进行跨浏览器测试吗?
    Wireshark基本使用方法
    (附源码)spring boot智能服药提醒app 毕业设计 102151
    07-定位布局
    对你的第一个推荐计划的期望
    双靶向融合蛋白标记的红细胞膜包裹PLGA微球/细胞膜拮抗联合纳米酶的仿生制备
    SSM框架速成5:在图书馆管理系统上新增搜索查询功能(开发思维)
    OpenV2X:OpenInfra延伸到Open Vertical Infra的尝试和探索
    k8s使用rbd作为存储
  • 原文地址:https://blog.csdn.net/weixin_48278764/article/details/137914603