当前位置: 首页 > wzjs >正文

适合做网站背景的图片怎么查一个网站是否备案

适合做网站背景的图片,怎么查一个网站是否备案,沈阳网站开发工程师招聘网,岳阳建设网站哪家好一.建造者模式的定义 建造者模式是一种对象构建的设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建逻辑可以创建不同的表示。这种模式适用于那些构建过程复杂、步骤多变的对象,尤其是当对象的创建涉及多个可选参数时。 二.…

一.建造者模式的定义

        建造者模式是一种对象构建的设计模式,它将一个复杂对象的构建过程与其表示分离,使得同样的构建逻辑可以创建不同的表示。这种模式适用于那些构建过程复杂、步骤多变的对象,尤其是当对象的创建涉及多个可选参数时。
 

    二.核心结构

    角色职责
    产品 (Product)最终构建的复杂对象,包含多个部件
    抽象建造者 (Builder)定义构建产品部件的抽象接口
    具体建造者 (ConcreteBuilder)实现抽象建造者接口,完成部件的具体构造与装配
    指挥者 (Director)控制构建流程,按固定顺序调用建造者方法

    想象你在 搭乐高积木:

    • 你想搭一辆车,这辆车有很多部分:轮子、发动机、车门、颜色等等。
    • 搭建这辆车的过程(比如先装底盘、再装引擎、然后喷漆)是固定的,但每个部分你可以选择不同的样式:
      • 有人要跑车款(红色、运动轮胎)
      • 有人要越野款(绿色、大轮胎)
      • 有人要电动车(白色、无引擎)
    • 建造者模式就是帮你:
    • 把组装流程标准化(先装底盘 → 再装轮子 → 最后喷漆),不管你要哪种车。
    • 让不同“建造者”负责不同款式(跑车建造者、越野车建造者)。
    • 最后你只要告诉指挥者:“按这个建造者的风格来搭”,就能得到你想要的那辆车(产品)。

    建造者模式适用于:构建一个复杂的对象,其构建步骤是固定的,但每一步的具体实现可以不同。

    三.案例

    3.1.产品

    /*** 产品类:Meal* 表示一个完整的套餐对象,包含多个项目(如主食、饮料、附加品等)。* 在本案例中,用于模拟餐厅点餐系统中的套餐构建过程。*/
    public class Meal {private List<String> items = new ArrayList<>();/*** 添加一项到套餐中* @param item 要添加的物品名称*/public void addItem(String item) {items.add(item);}/*** 显示套餐中的所有项目*/public void showItems() {for (String item : items) {System.out.println("Item: " + item);}}/*** 获取套餐总价格* @return 套餐总价(简化为每项10元)*/public double getCost() {return items.size() * 10.0;}
    }

    3.2.抽象建造者

    /*** 抽象建造者* 定义了构建套餐对象的通用步骤。* 所有具体构建者类都必须实现这些方法来提供具体的构建逻辑。*/
    public interface MealBuilder {/*** 构建主食*/void buildMainCourse();/*** 构建饮料*/void buildDrink();/*** 构建甜点或附加品*/void buildDessert();/*** 获取构建完成的套餐对象* @return 构建好的 Meal 对象*/Meal getMeal();
    }

    3.3.具体构建者

    /*** 具体构建者:FamilyMealBuilder* 实现家庭套餐的构建过程。* 提供具体的构建步骤,如主食、饮料和附加品。*/
    public class FamilyMealBuilder implements MealBuilder {private Meal meal;public FamilyMealBuilder() {this.meal = new Meal();}/*** 构建家庭套餐的主食:炸鸡*/@Overridepublic void buildMainCourse() {meal.addItem("炸鸡");}/*** 构建家庭套餐的饮料:两杯可乐*/@Overridepublic void buildDrink() {meal.addItem("两杯可乐");}/*** 构建家庭套餐的附加品:薯条和沙拉*/@Overridepublic void buildDessert() {meal.addItem("薯条");meal.addItem("沙拉");}/*** 获取构建完成的家庭套餐* @return 构建好的 Meal 对象*/@Overridepublic Meal getMeal() {return meal;}
    }/*** 具体构建者:KidsMealBuilder* 实现儿童套餐的构建过程。* 提供具体的构建步骤,如主食、饮料和附加品。*/
    public class KidsMealBuilder implements MealBuilder {private Meal meal;public KidsMealBuilder() {this.meal = new Meal();}/*** 构建儿童套餐的主食:汉堡*/@Overridepublic void buildMainCourse() {meal.addItem("汉堡");}/*** 构建儿童套餐的饮料:可乐*/@Overridepublic void buildDrink() {meal.addItem("可乐");}/*** 构建儿童套餐的附加品:小玩具*/@Overridepublic void buildDessert() {meal.addItem("小玩具");}/*** 获取构建完成的儿童套餐* @return 构建好的 Meal 对象*/@Overridepublic Meal getMeal() {return meal;}
    }

    3.4.指挥者

    /*** 指挥者类:Waiter* 负责控制构建流程,调用构建者的各个步骤来完成套餐的构建。* 该类不关心具体构建细节,只负责执行构建顺序。*/
    public class Waiter {private MealBuilder mealBuilder;/*** 设置当前使用的构建者* @param mealBuilder 构建者对象*/public void setMealBuilder(MealBuilder mealBuilder) {this.mealBuilder = mealBuilder;}/*** 执行构建流程* @return 构建完成的套餐对象*/public Meal constructMeal() {mealBuilder.buildMainCourse();mealBuilder.buildDrink();mealBuilder.buildDessert();return mealBuilder.getMeal();}
    }

    3.5.客户端调用

    创建指挥者对象,传入构建者,获得产品。

    /*** 测试入口类:RestaurantDemo* 模拟餐厅点餐系统的使用场景,通过建造者模式构建不同类型的套餐。*/
    public class RestaurantDemo {public static void main(String[] args) {// 创建指挥者Waiter waiter = new Waiter();// 构建儿童套餐MealBuilder kidsMealBuilder = new KidsMealBuilder();waiter.setMealBuilder(kidsMealBuilder);Meal kidsMeal = waiter.constructMeal();System.out.println("儿童套餐:");kidsMeal.showItems();System.out.println("总价: ¥" + kidsMeal.getCost());// 构建家庭套餐MealBuilder familyMealBuilder = new FamilyMealBuilder();waiter.setMealBuilder(familyMealBuilder);Meal familyMeal = waiter.constructMeal();System.out.println("\n家庭套餐:");familyMeal.showItems();System.out.println("总价: ¥" + familyMeal.getCost());}
    }

    四.应用场景

    4.1. 餐厅点餐系统

            构建流程统一(先主食 → 再饮料 → 后甜点)。

    4.2.游戏角色创建系统

            角色创建流程一致(设置基础属性 → 添加装备 → 设置技能)

    4.3. 文档生成器(PDF、Word、HTML)

            文档生成步骤一致(设置标题 → 添加正文 → 插入页脚)

    💡 如果本文对你有帮助,点击右上角【订阅专栏】或左上角关注我  
    🔔 完整的23中设计模式干货,第一时间推送给你!
    🔔 有什么问题也可以在评论区讨论🤝🤝🤝
    http://www.dtcms.com/wzjs/553338.html

    相关文章:

  • 源码建站教程免费行情软件app下载大全
  • 免费行情软件网站下载ww艺术字体在线生成器毛笔字
  • 网站语言选择江西省赣州市中考分数线2022
  • 宁夏建设职业技术学院成绩查询网站最简单的出入库管理软件
  • 专业网站开发工具更换网站域名 推广
  • wp网站建设教程做旅游网站需要什么
  • 怎样开个人网站大学生创新创业大赛项目计划书
  • 网站 空间深圳外贸公司qc招聘
  • 企业网站建设方案流程成都网站建设哪家专业而且比较便宜
  • 设计游戏的软件seo一个空间建多个网站
  • 东莞h5网站建设做视频包的网站有哪些
  • 网站建设搭建环境浙江省建设注册管理中心网站首页
  • 济南专业网站开发公司如何做自助网站
  • 开源网站官网企业展厅设计公司收费情况
  • 网络营销方案成功案例北京优化网站方法
  • 怎么知道网站哪家公司做的旧宫做网站的公司
  • 做婚礼网站的公司公司主页网站开发
  • 两个网站开发swot分析北京做网站ezhixi
  • 谷歌网站推广好做吗新赣州房产网
  • 和拓者设计吧类似的网站云服务器 可以做网站吗
  • 建设网站情况说明范文深圳推广公司是什么
  • 网站建设计北京商城开发
  • 行业网站建设的开发方案百度推广登录官网
  • 网站黄页推广软件如何自己建设网站
  • 电商网站设计岗位主要是营销型网站建设的五力原则包括
  • 云浮哪有做网站公司装修无忧网
  • 如何维护自己公司网站品牌建设网
  • 济南能源建设网站wordpress 发布函数
  • 广州网站设计成功柚米科技软文广告有哪些
  • 上海网站制作公司多少钱建设银行宁波分行招聘网站