您的位置:首页 > 娱乐 > 明星 > 设计软件教程_网络推广产品_一站式网络营销_优化网站教程

设计软件教程_网络推广产品_一站式网络营销_优化网站教程

2024/12/23 10:31:18 来源:https://blog.csdn.net/weixin_48627356/article/details/144024026  浏览:    关键词:设计软件教程_网络推广产品_一站式网络营销_优化网站教程
设计软件教程_网络推广产品_一站式网络营销_优化网站教程

文章目录

  • 前言
  • 一、基本概念
  • 二、使用步骤


前言

提示:设计者模式有利于提高开发者的编程效率和代码质量:

GoF(Gang of Four,四人帮)设计模式由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者合著,介绍了23种经典的设计模式。
分为三大类:创建型模式、结构型模式和行为型模式。


提示:以下是本篇文章正文内容,下面案例可供参考

一、基本概念

建造者模式是一种创建型设计模式,它允许你一步一步构造对象,并且只有在所有必要的部分都准备好之后才返回最终的对象。

这种模式非常有用,特别是在构建复杂的对象时,可以避免大量的构造函数参数,同时也使得代码更加清晰易读。

二、使用步骤

下面是一个简单的例子,展示如何使用建造者模式来创建一个Meal对象,这个对象可能包含多种食物和饮料。

首先定义 Meal 类:

public class Meal {private String mainCourse;private String sideDish;private String drink;private String dessert;// 私有构造器,防止直接实例化private Meal(MealBuilder builder) {this.mainCourse = builder.mainCourse;this.sideDish = builder.sideDish;this.drink = builder.drink;this.dessert = builder.dessert;}@Overridepublic String toString() {return "Meal{" +"mainCourse='" + mainCourse + '\'' +", sideDish='" + sideDish + '\'' +", drink='" + drink + '\'' +", dessert='" + dessert + '\'' +'}';}// 内部静态类,作为建造者public static class MealBuilder {private String mainCourse;private String sideDish;private String drink;private String dessert;public MealBuilder mainCourse(String mainCourse) {this.mainCourse = mainCourse;return this;}public MealBuilder sideDish(String sideDish) {this.sideDish = sideDish;return this;}public MealBuilder drink(String drink) {this.drink = drink;return this;}public MealBuilder dessert(String dessert) {this.dessert = dessert;return this;}// 构建最终的 Meal 对象public Meal build() {return new Meal(this);}}
}

使用 MealBuilder 创建 Meal 对象:

public class Client {public static void main(String[] args) {// 使用建造者模式创建 Meal 对象Meal meal = new Meal.MealBuilder().mainCourse("牛排").sideDish("薯条").drink("可乐").dessert("冰淇淋").build();System.out.println(meal);}
}

在这个例子中,Meal 类是最终要构建的对象,而 MealBuilder 是用来构建 Meal 实例的内部类。

通过调用 MealBuilder 的方法(如 mainCourse 和 sideDish),我们可以逐步设置 Meal 的各个属性。

最后,当我们调用 build() 方法时,就会创建一个新的 Meal 对象。

总结:
这种方式的好处在于,即使 Meal 类有很多属性,我们也不需要为每个组合都提供一个构造函数,而是可以根据需要逐步设置属性,这使得代码更加灵活和易于维护。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com