type
status
date
slug
summary
tags
category
icon
password
AI summary

一、定义

notion image
建造者模式指的是一个复杂对象,它是由多个简单的对象组合,然后一步一步建构而成的

二、示例:

模拟场景: 很多装修公司都会给出⾃家的套餐服务,⼀般有;欧式豪华、轻奢⽥园、现代简约等等,⽽这些套餐的后⾯是不同的商品的组合。例如;⼀级&⼆级吊顶、多乐⼠涂料、圣象地板、⻢可波罗地砖等等,按照不同的套餐的价格选取不同的品牌组合,最终再按照装修⾯积给出⼀个整体的报价。
这⾥我们就模拟装修公司想推出⼀些套餐装修服务,按照不同的价格设定品牌选择组合,以达到使⽤建造者模式的过程。

传统硬编码方式(都在一个类里面实现,多重if else嵌套使用)

装修风格类:DecorationPackageController
测试:ApiTest

建造者模式

任何的装修风格都是离不开基础的涂料、平层、瓷砖、吊顶。 抽象装修菜单接口:IMenu
规则实现:DecoratePackageMenu
每一种装修风格对应的是一种装修方法,加入新的风格,只需要扩展新的方法:Builder
总结: 通过上⾯对建造者模式的使⽤,已经可以摸索出⼀点⼼得。那就是什么时候会选择这样的设计模 式,当: ⼀些基本物料不会变,⽽其组合经常变化的时候 ,就可以选择这样的设计模式来构建代码。
此设计模式满⾜了单⼀职责原则以及可复⽤的技术、建造者独⽴易扩展、便于控制细节⻛险。但 同时当出现特别多的物料以及很多的组合后,类的不断扩展也会造成难以维护的问题。但这种设计 结构模型可以把᯿复的内容抽象到数据库中,按照需要配置。这样就可以减少代码中⼤量的复。
 
JAVA【设计模式】工厂方法模式JAVA【设计模式】适配器模式