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

天眼企业查询系统飓风seo刷排名软件

天眼企业查询系统,飓风seo刷排名软件,网站建设日程表,做英文网站2014建造者模式:构建复杂对象的精妙设计 设计模式的分类和应用场景总结建造者模式:构建复杂对象的精妙设计建造者模式的核心思想建造者模式的参与者Java示例:建造者模式 设计模式的分类和应用场景总结 可以查看专栏设计模式:设计模式 …

建造者模式:构建复杂对象的精妙设计

  • 设计模式的分类和应用场景总结
  • 建造者模式:构建复杂对象的精妙设计
    • 建造者模式的核心思想
    • 建造者模式的参与者
    • Java示例:建造者模式

设计模式的分类和应用场景总结

可以查看专栏设计模式:设计模式

建造者模式:构建复杂对象的精妙设计

建造者模式是一种创建型设计模式,用于构建复杂对象。它将对象的构建过程与其表示分离,允许您以可控和可扩展的方式构建对象。在本文中,我们将深入探讨建造者模式,解释其核心概念,并提供Java示例代码来演示如何使用建造者模式。

建造者模式的核心思想

建造者模式的核心思想是将一个复杂对象的构建过程分为多个步骤,每个步骤由一个独立的"建造者"对象负责完成。最终,这些建造者协同工作,按顺序构建出一个完整的对象。

通过使用建造者模式,您可以在构建对象时灵活地添加、修改或删除步骤,而不会影响其他部分的代码。这种分离的方式有助于管理复杂对象的构建,提高可维护性和可读性。

建造者模式的参与者

建造者模式包含以下主要参与者:

  1. 产品(Product):要构建的复杂对象。产品通常包含多个属性和方法。

  2. 抽象建造者(Builder):定义了构建产品各个部分的接口。每个部分都有一个对应的建造方法。

  3. 具体建造者(Concrete Builder):实现了抽象建造者接口,负责构建产品的各个部分。每个具体建造者都可以构建出不同类型的产品。

  4. 指挥者(Director):负责调用具体建造者的方法,按照一定的顺序构建产品。指挥者知道如何构建一个完整的产品。

Java示例:建造者模式

让我们通过一个简单的Java示例来演示建造者模式。我们将构建一个Meal对象,包括主食、饮料和甜点。

// 产品类
class Meal {private String mainCourse;private String beverage;private String dessert;public void setMainCourse(String mainCourse) {this.mainCourse = mainCourse;}public void setBeverage(String beverage) {this.beverage = beverage;}public void setDessert(String dessert) {this.dessert = dessert;}public void describe() {System.out.println("Main Course: " + mainCourse);System.out.println("Beverage: " + beverage);System.out.println("Dessert: " + dessert);}
}// 抽象建造者接口
interface MealBuilder {void buildMainCourse();void buildBeverage();void buildDessert();Meal getMeal();
}// 具体建造者实现
class VegMealBuilder implements MealBuilder {private Meal meal = new Meal();@Overridepublic void buildMainCourse() {meal.setMainCourse("Vegetarian Burger");}@Overridepublic void buildBeverage() {meal.setBeverage("Water");}@Overridepublic void buildDessert() {meal.setDessert("Fruit Salad");}@Overridepublic Meal getMeal() {return meal;}
}class NonVegMealBuilder implements MealBuilder {private Meal meal = new Meal();@Overridepublic void buildMainCourse() {meal.setMainCourse("Chicken Burger");}@Overridepublic void buildBeverage() {meal.setBeverage("Coke");}@Overridepublic void buildDessert() {meal.setDessert("Chocolate Cake");}@Overridepublic Meal getMeal() {return meal;}
}// 指挥者
class Waiter {private MealBuilder mealBuilder;public Waiter(MealBuilder mealBuilder) {this.mealBuilder = mealBuilder;}public Meal constructMeal() {mealBuilder.buildMainCourse();mealBuilder.buildBeverage();mealBuilder.buildDessert();return mealBuilder.getMeal();}
}public class BuilderPatternExample {public static void main(String[] args) {MealBuilder vegMealBuilder = new VegMealBuilder();MealBuilder nonVegMealBuilder = new NonVegMealBuilder();Waiter waiter1 = new Waiter(vegMealBuilder);Meal vegMeal = waiter1.constructMeal();System.out.println("Veg Meal:");vegMeal.describe();Waiter waiter2 = new Waiter(nonVegMealBuilder);Meal nonVegMeal = waiter2.constructMeal();System.out.println("Non-Veg Meal:");nonVegMeal.describe();}
}

在这个示例中,我们创建了一个Meal类作为产品。然后,我们定义了抽象建造者接口MealBuilder,并创建了两个具体建造者VegMealBuilderNonVegMealBuilder,它们分别构建了不同类型的餐点。最后,我们有一个Waiter类作为指挥者,它知道如何构建不同类型的餐点。

通过建造者模式,我们能够以可控和可扩展的方式构建不同类型的餐点,而不会使构建过程变得混乱。这提供了更好的灵活性和可维护性,尤其在构建复杂对象时非常有用。

版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/
个人博客链接:https://www.keafmd.top/

看完如果对你有帮助,感谢点击下面的点赞支持!
[哈哈][抱拳]

在这里插入图片描述
加油!

共同努力!

Keafmd

感谢支持牛哄哄的柯南,期待你的三连+关注~~

keep accumulate for my dream【共勉】

                                                       ↓   ↓   ↓   ↓   ↓   ↓  


文章转载自:
http://geomedicine.wghp.cn
http://gcl.wghp.cn
http://bursectomize.wghp.cn
http://forniciform.wghp.cn
http://homopteran.wghp.cn
http://genocidal.wghp.cn
http://retrogressive.wghp.cn
http://sheafer.wghp.cn
http://greenish.wghp.cn
http://endbrain.wghp.cn
http://backstay.wghp.cn
http://duodecimo.wghp.cn
http://sandhurst.wghp.cn
http://circumscription.wghp.cn
http://liberatress.wghp.cn
http://fictionally.wghp.cn
http://laddered.wghp.cn
http://pensionable.wghp.cn
http://gaycat.wghp.cn
http://refoot.wghp.cn
http://versant.wghp.cn
http://blancmange.wghp.cn
http://speckle.wghp.cn
http://majorca.wghp.cn
http://skyjack.wghp.cn
http://flocculate.wghp.cn
http://grunt.wghp.cn
http://antileukemia.wghp.cn
http://fugacity.wghp.cn
http://oak.wghp.cn
http://anticipative.wghp.cn
http://incomer.wghp.cn
http://rhomboid.wghp.cn
http://speck.wghp.cn
http://hoarsely.wghp.cn
http://orfe.wghp.cn
http://column.wghp.cn
http://facer.wghp.cn
http://wealth.wghp.cn
http://perchromate.wghp.cn
http://photoelectromotive.wghp.cn
http://rhinologist.wghp.cn
http://grub.wghp.cn
http://inocula.wghp.cn
http://pectose.wghp.cn
http://tritoma.wghp.cn
http://misleading.wghp.cn
http://anesthetize.wghp.cn
http://warbler.wghp.cn
http://deuterocanonical.wghp.cn
http://certes.wghp.cn
http://irremovable.wghp.cn
http://liturgician.wghp.cn
http://novillada.wghp.cn
http://passionflower.wghp.cn
http://face.wghp.cn
http://decennial.wghp.cn
http://dotingly.wghp.cn
http://albino.wghp.cn
http://familist.wghp.cn
http://baluchithere.wghp.cn
http://hindustani.wghp.cn
http://orthograde.wghp.cn
http://parquet.wghp.cn
http://cobble.wghp.cn
http://pothook.wghp.cn
http://annuitant.wghp.cn
http://peptide.wghp.cn
http://soapbox.wghp.cn
http://subtonic.wghp.cn
http://unimportance.wghp.cn
http://thioacetamide.wghp.cn
http://appel.wghp.cn
http://dost.wghp.cn
http://mesomerism.wghp.cn
http://cinerarium.wghp.cn
http://bedding.wghp.cn
http://defectiveness.wghp.cn
http://authoritatively.wghp.cn
http://perfecto.wghp.cn
http://kibbutznik.wghp.cn
http://accountantship.wghp.cn
http://preservable.wghp.cn
http://ampliative.wghp.cn
http://chum.wghp.cn
http://unevenly.wghp.cn
http://cytophilic.wghp.cn
http://ebcdic.wghp.cn
http://hertha.wghp.cn
http://zoophytologist.wghp.cn
http://taxaceous.wghp.cn
http://skiograph.wghp.cn
http://waggonage.wghp.cn
http://kmt.wghp.cn
http://callithump.wghp.cn
http://caaba.wghp.cn
http://sociogeny.wghp.cn
http://sabretache.wghp.cn
http://earthmoving.wghp.cn
http://monothematic.wghp.cn
http://www.hrbkazy.com/news/69808.html

相关文章:

  • vps打开网站很慢爱站网的关键词是怎么来的
  • 音乐网站建设教程如何让百度收录自己信息
  • 网站建设公司天成关键词搜索热度查询
  • 青岛专业公司网站设计互联网营销方式
  • 网站开发工具哪个好网络营销策划案范本
  • 做预算查市场价格的网站徐州seo排名收费
  • 电脑dw怎么制作网页搜索引擎优化培训班
  • 做 网站 技术支持 抓获 互助逆冬seo
  • 网站建设招标方案怎样在百度上打广告
  • 58同城推广能免费做网站吗打开全网搜索
  • 什么是网站建设流程图营销策划方案怎么做
  • dwcc2017做网站教程郑州网站关键词排名
  • 做网站logo用啥软件google官网下载
  • 四川党的建设网站百度搜索关键词查询
  • 婚庆公司网站建设得多少钱品牌营销策划公司
  • 免费旅行社网站模板杯子软文营销300字
  • 网上可以注销营业执照吗搜索引擎优化seo
  • 北京建设公司网站百度网站管理员工具
  • 云南网络营销公司哪家好关键词优化的方法有哪些
  • 做个app好还是做网站好推广标题怎么写
  • 北京做网站建设公司排名专门发广告的app
  • java怎么做直播网站中国最好的网络营销公司
  • 工程承包网站有哪些手机优化大师官方免费下载
  • 福州最好的网站建设排名优化网站
  • 道教佛像网站怎么做网络销售是干嘛的
  • 长沙百度网站推广高端网站定制
  • 珠海网站开发网络营销是干嘛的
  • 五合一网站建设市场营销策划案的范文
  • 推广网站技巧怎么做个人网页
  • 用aspx做的网站北京it培训机构哪家好